✨ 增强install.sh对宝塔面板的支持
新增功能: - 添加 ensure_nginx_installed() 函数,自动检测并安装 Nginx - 在所有 Nginx 配置函数中调用确保 Nginx 已安装 - restart_nginx_safe() 新增宝塔面板路径支持(/www/server/nginx/sbin/nginx) 改进点: - 优先尝试宝塔面板的 Nginx 路径 - 支持在更新/修复模式下自动安装缺失的 Nginx - 根据不同包管理器自动选择安装方式(apt/yum/dnf/zypper) - 增强错误提示和安装验证 兼容性: - 完全兼容宝塔面板环境 - 兼容标准 Linux 系统环境 - 支持多种发行版的包管理器 这些改进使脚本能在更多环境下自动化部署,提升用户体验。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
49
install.sh
49
install.sh
@@ -2307,6 +2307,23 @@ restart_nginx_safe() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 宝塔路径优先尝试
|
||||||
|
if [[ -x /www/server/nginx/sbin/nginx ]]; then
|
||||||
|
if /www/server/nginx/sbin/nginx -t 2>/dev/null; then
|
||||||
|
if /www/server/nginx/sbin/nginx -s reload 2>/dev/null; then
|
||||||
|
print_success "已通过宝塔 nginx -s reload 重载"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if /www/server/nginx/sbin/nginx 2>/dev/null; then
|
||||||
|
print_success "已通过宝塔 nginx 启动"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
print_error "宝塔 Nginx 配置测试失败"
|
||||||
|
/www/server/nginx/sbin/nginx -t 2>&1 || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# 直接使用nginx命令
|
# 直接使用nginx命令
|
||||||
if command -v nginx &> /dev/null; then
|
if command -v nginx &> /dev/null; then
|
||||||
if ! nginx -t 2>/dev/null; then
|
if ! nginx -t 2>/dev/null; then
|
||||||
@@ -2331,10 +2348,36 @@ restart_nginx_safe() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 确保已安装Nginx(更新/修复模式下可能未安装)
|
||||||
|
ensure_nginx_installed() {
|
||||||
|
if command -v nginx &> /dev/null || [[ -x /www/server/nginx/sbin/nginx ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_step "未检测到 Nginx,开始安装..."
|
||||||
|
|
||||||
|
case "$PKG_MANAGER" in
|
||||||
|
apt) install_nginx_apt ;;
|
||||||
|
yum) install_nginx_yum ;;
|
||||||
|
dnf) install_nginx_dnf ;;
|
||||||
|
zypper) install_nginx_zypper ;;
|
||||||
|
*) print_error "无法自动安装Nginx,请手动安装"; return 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# 安装后再次检测
|
||||||
|
if ! command -v nginx &> /dev/null && [[ ! -x /www/server/nginx/sbin/nginx ]]; then
|
||||||
|
print_error "Nginx安装失败,请手动安装"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# 步骤1: 先配置HTTP Nginx(为SSL证书验证做准备)
|
# 步骤1: 先配置HTTP Nginx(为SSL证书验证做准备)
|
||||||
configure_nginx_http_first() {
|
configure_nginx_http_first() {
|
||||||
print_step "配置基础HTTP Nginx(用于SSL证书验证)..."
|
print_step "配置基础HTTP Nginx(用于SSL证书验证)..."
|
||||||
|
|
||||||
|
# 确保已安装Nginx
|
||||||
|
ensure_nginx_installed || return 1
|
||||||
|
|
||||||
# 总是先配置HTTP模式
|
# 总是先配置HTTP模式
|
||||||
local server_name="${DOMAIN:-_}"
|
local server_name="${DOMAIN:-_}"
|
||||||
|
|
||||||
@@ -2634,6 +2677,9 @@ configure_nginx() {
|
|||||||
configure_nginx_http() {
|
configure_nginx_http() {
|
||||||
local server_name="${DOMAIN:-_}"
|
local server_name="${DOMAIN:-_}"
|
||||||
|
|
||||||
|
# 确保已安装Nginx
|
||||||
|
ensure_nginx_installed || return 1
|
||||||
|
|
||||||
# 检测Nginx配置目录结构并创建必要的目录
|
# 检测Nginx配置目录结构并创建必要的目录
|
||||||
if [[ -d /www/server/nginx ]]; then
|
if [[ -d /www/server/nginx ]]; then
|
||||||
# 宝塔面板
|
# 宝塔面板
|
||||||
@@ -2750,6 +2796,9 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
configure_nginx_https() {
|
configure_nginx_https() {
|
||||||
|
# 确保已安装Nginx
|
||||||
|
ensure_nginx_installed || return 1
|
||||||
|
|
||||||
# 检测Nginx配置目录结构并创建必要的目录
|
# 检测Nginx配置目录结构并创建必要的目录
|
||||||
if [[ -d /www/server/nginx ]]; then
|
if [[ -d /www/server/nginx ]]; then
|
||||||
# 宝塔面板
|
# 宝塔面板
|
||||||
|
|||||||
Reference in New Issue
Block a user