fix: 优化宝塔面板Nginx重载逻辑,添加多种重启方式
- 添加BT Panel专用的Nginx重载流程 - 尝试多种方法:BT CLI工具、直接nginx命令、systemctl备用 - 改用进程检查(pgrep)验证Nginx状态,不依赖systemctl - 修复BT Panel环境下nginx启动失败的问题
This commit is contained in:
56
install.sh
56
install.sh
@@ -2068,21 +2068,59 @@ EOF
|
|||||||
|
|
||||||
# 启动或重载Nginx
|
# 启动或重载Nginx
|
||||||
if [[ "$IS_BT_PANEL" == "true" ]]; then
|
if [[ "$IS_BT_PANEL" == "true" ]]; then
|
||||||
# 宝塔面板:使用reload而不是restart
|
# 宝塔面板:尝试多种方式
|
||||||
if systemctl is-active --quiet nginx; then
|
print_info "宝塔环境,尝试重载Nginx..."
|
||||||
systemctl reload 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
|
else
|
||||||
systemctl start nginx
|
systemctl start nginx 2>/dev/null && print_info "已使用systemctl启动Nginx"
|
||||||
print_info "已启动宝塔Nginx"
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# 标准Nginx:重启
|
# 标准Nginx:重启
|
||||||
systemctl restart nginx
|
systemctl restart nginx
|
||||||
fi
|
fi
|
||||||
if ! systemctl is-active --quiet nginx; then
|
|
||||||
print_error "Nginx启动失败"
|
# 验证Nginx是否运行
|
||||||
return 1
|
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
|
fi
|
||||||
|
|
||||||
print_success "基础HTTP Nginx配置完成"
|
print_success "基础HTTP Nginx配置完成"
|
||||||
|
|||||||
Reference in New Issue
Block a user