fix: configure_nginx_final()函数添加宝塔面板Nginx重载支持

- 修复选择"暂不配置HTTPS"时Nginx重载失败的问题
- 添加与configure_nginx_http_first()相同的三重保障机制
- 支持宝塔面板环境的nginx命令直接操作
This commit is contained in:
WanWanYun
2025-11-13 09:50:39 +08:00
parent c1b8e7b929
commit 72ec10ef4e

View File

@@ -2158,8 +2158,42 @@ configure_nginx_final() {
return 1
fi
# 重载nginx
systemctl reload nginx
# 重载nginx - 兼容宝塔面板
if [[ "$IS_BT_PANEL" == "true" ]]; then
# 宝塔面板:尝试多种方式
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 2>/dev/null && print_info "已使用systemctl启动Nginx"
fi
else
# 标准Nginx重载
systemctl reload nginx
fi
print_success "Nginx最终配置完成"
echo ""