diff --git a/install.sh b/install.sh index df50125..89dfb5e 100644 --- a/install.sh +++ b/install.sh @@ -2068,21 +2068,59 @@ EOF # 启动或重载Nginx if [[ "$IS_BT_PANEL" == "true" ]]; then - # 宝塔面板:使用reload而不是restart - if systemctl is-active --quiet nginx; then - systemctl reload nginx - print_info "已重载宝塔Nginx配置" + # 宝塔面板:尝试多种方式 + print_info "宝塔环境,尝试重载Nginx..." + + # 方式1: 使用宝塔命令行工具(如果存在) + if [[ -f /etc/init.d/bt ]]; then + /etc/init.d/bt restart 2>/dev/null + fi + + # 方式2: 直接使用nginx命令reload + if [[ -f /www/server/nginx/sbin/nginx ]]; then + /www/server/nginx/sbin/nginx -s reload 2>/dev/null + if [[ $? -eq 0 ]]; then + print_success "已使用nginx -s reload重载配置" + else + # 如果reload失败,尝试启动 + /www/server/nginx/sbin/nginx 2>/dev/null + if [[ $? -eq 0 ]]; then + print_success "已启动Nginx" + else + print_warning "Nginx reload失败,尝试systemctl..." + fi + fi + fi + + # 方式3: 尝试systemctl(备用) + if systemctl is-active --quiet nginx 2>/dev/null; then + systemctl reload nginx 2>/dev/null && print_info "已使用systemctl重载配置" else - systemctl start nginx - print_info "已启动宝塔Nginx" + systemctl start nginx 2>/dev/null && print_info "已使用systemctl启动Nginx" fi else # 标准Nginx:重启 systemctl restart nginx fi - if ! systemctl is-active --quiet nginx; then - print_error "Nginx启动失败" - return 1 + + # 验证Nginx是否运行 + sleep 2 + if [[ "$IS_BT_PANEL" == "true" ]]; then + # 宝塔:检查进程 + if pgrep -x nginx > /dev/null; then + print_success "Nginx运行正常" + else + print_error "Nginx未运行" + print_warning "请在宝塔面板中手动启动Nginx,或运行:" + print_warning "/www/server/nginx/sbin/nginx" + return 1 + fi + else + # 标准Nginx:使用systemctl检查 + if ! systemctl is-active --quiet nginx; then + print_error "Nginx启动失败" + return 1 + fi fi print_success "基础HTTP Nginx配置完成"