diff --git a/install.sh b/install.sh index 8b0deca..df50125 100644 --- a/install.sh +++ b/install.sh @@ -1962,11 +1962,22 @@ configure_nginx_http_first() { local server_name="${DOMAIN:-_}" # 检测Nginx配置目录结构并创建必要的目录 - if [[ -d /etc/nginx/sites-available ]] || [[ "$PKG_MANAGER" == "apt" ]]; then + if [[ -d /www/server/nginx ]]; then + # 宝塔面板 (BT Panel) + NGINX_CONF_DIR="/www/server/panel/vhost/nginx" + NGINX_ENABLED_DIR="" + USE_SYMLINK=false + IS_BT_PANEL=true + + # 确保目录存在 + mkdir -p ${NGINX_CONF_DIR} + print_info "检测到宝塔面板,使用宝塔Nginx配置目录" + elif [[ -d /etc/nginx/sites-available ]] || [[ "$PKG_MANAGER" == "apt" ]]; then # Debian/Ubuntu: 使用sites-available NGINX_CONF_DIR="/etc/nginx/sites-available" NGINX_ENABLED_DIR="/etc/nginx/sites-enabled" USE_SYMLINK=true + IS_BT_PANEL=false # 确保目录存在 mkdir -p ${NGINX_CONF_DIR} @@ -1976,6 +1987,7 @@ configure_nginx_http_first() { NGINX_CONF_DIR="/etc/nginx/conf.d" NGINX_ENABLED_DIR="" USE_SYMLINK=false + IS_BT_PANEL=false # 确保目录存在 mkdir -p ${NGINX_CONF_DIR} @@ -2042,10 +2054,11 @@ EOF ln -sf ${NGINX_CONF_DIR}/${PROJECT_NAME}.conf ${NGINX_ENABLED_DIR}/${PROJECT_NAME}.conf # 删除默认站点 rm -f ${NGINX_ENABLED_DIR}/default - else - # CentOS/RHEL: conf.d中的.conf文件会自动加载,删除默认配置 + elif [[ "$IS_BT_PANEL" != "true" ]]; then + # CentOS/RHEL (非宝塔): conf.d中的.conf文件会自动加载 rm -f /etc/nginx/conf.d/default.conf fi + # 宝塔面板:配置文件已自动包含,无需额外操作 # 测试nginx配置 if ! nginx -t; then @@ -2053,8 +2066,20 @@ EOF return 1 fi - # 启动Nginx - systemctl restart nginx + # 启动或重载Nginx + if [[ "$IS_BT_PANEL" == "true" ]]; then + # 宝塔面板:使用reload而不是restart + if systemctl is-active --quiet nginx; then + systemctl reload nginx + print_info "已重载宝塔Nginx配置" + else + systemctl start nginx + print_info "已启动宝塔Nginx" + fi + else + # 标准Nginx:重启 + systemctl restart nginx + fi if ! systemctl is-active --quiet nginx; then print_error "Nginx启动失败" return 1 @@ -2132,17 +2157,25 @@ configure_nginx_http() { local server_name="${DOMAIN:-_}" # 检测Nginx配置目录结构并创建必要的目录 - if [[ -d /etc/nginx/sites-available ]] || [[ "$PKG_MANAGER" == "apt" ]]; then - # Debian/Ubuntu: 使用sites-available + if [[ -d /www/server/nginx ]]; then + # 宝塔面板 + NGINX_CONF_DIR="/www/server/panel/vhost/nginx" + USE_SYMLINK=false + IS_BT_PANEL=true + mkdir -p ${NGINX_CONF_DIR} + elif [[ -d /etc/nginx/sites-available ]] || [[ "$PKG_MANAGER" == "apt" ]]; then + # Debian/Ubuntu NGINX_CONF_DIR="/etc/nginx/sites-available" NGINX_ENABLED_DIR="/etc/nginx/sites-enabled" USE_SYMLINK=true + IS_BT_PANEL=false mkdir -p ${NGINX_CONF_DIR} mkdir -p ${NGINX_ENABLED_DIR} else - # CentOS/RHEL: 使用conf.d + # CentOS/RHEL NGINX_CONF_DIR="/etc/nginx/conf.d" USE_SYMLINK=false + IS_BT_PANEL=false mkdir -p ${NGINX_CONF_DIR} fi @@ -2207,25 +2240,33 @@ EOF ln -sf ${NGINX_CONF_DIR}/${PROJECT_NAME}.conf ${NGINX_ENABLED_DIR}/${PROJECT_NAME}.conf # 删除默认站点 rm -f ${NGINX_ENABLED_DIR}/default - else - # CentOS/RHEL: conf.d中的.conf文件会自动加载 + elif [[ "$IS_BT_PANEL" != "true" ]]; then + # CentOS/RHEL (非宝塔): conf.d中的.conf文件会自动加载 rm -f /etc/nginx/conf.d/default.conf fi } configure_nginx_https() { # 检测Nginx配置目录结构并创建必要的目录 - if [[ -d /etc/nginx/sites-available ]] || [[ "$PKG_MANAGER" == "apt" ]]; then - # Debian/Ubuntu: 使用sites-available + if [[ -d /www/server/nginx ]]; then + # 宝塔面板 + NGINX_CONF_DIR="/www/server/panel/vhost/nginx" + USE_SYMLINK=false + IS_BT_PANEL=true + mkdir -p ${NGINX_CONF_DIR} + elif [[ -d /etc/nginx/sites-available ]] || [[ "$PKG_MANAGER" == "apt" ]]; then + # Debian/Ubuntu NGINX_CONF_DIR="/etc/nginx/sites-available" NGINX_ENABLED_DIR="/etc/nginx/sites-enabled" USE_SYMLINK=true + IS_BT_PANEL=false mkdir -p ${NGINX_CONF_DIR} mkdir -p ${NGINX_ENABLED_DIR} else - # CentOS/RHEL: 使用conf.d + # CentOS/RHEL NGINX_CONF_DIR="/etc/nginx/conf.d" USE_SYMLINK=false + IS_BT_PANEL=false mkdir -p ${NGINX_CONF_DIR} fi @@ -2303,8 +2344,8 @@ EOF ln -sf ${NGINX_CONF_DIR}/${PROJECT_NAME}.conf ${NGINX_ENABLED_DIR}/${PROJECT_NAME}.conf # 删除默认站点 rm -f ${NGINX_ENABLED_DIR}/default - else - # CentOS/RHEL: conf.d中的.conf文件会自动加载 + elif [[ "$IS_BT_PANEL" != "true" ]]; then + # CentOS/RHEL (非宝塔): conf.d中的.conf文件会自动加载 rm -f /etc/nginx/conf.d/default.conf fi }