diff --git a/deploy.py b/deploy.py index 7b30101..3440b08 100644 --- a/deploy.py +++ b/deploy.py @@ -335,7 +335,25 @@ def enable_nginx_site(remote_conf: str, domain: str) -> bool: log_warn("提示: default 文件可能仍存在,nginx 可能有端口冲突;步骤 5 验证会确认") else: log_info("清默认步骤完成") - return True # Task 4 替换为完整 5 步(含验证) + + # ===== 步骤 5: 验证结果 ===== + log_info("验证步骤: 检查 symlink 和 default 状态...") + verify_cmd = ( + f'readlink {target} && ' + f'(test ! -e /etc/nginx/sites-enabled/default && echo "default:OK" || echo "default:STILL_EXISTS") && ' + f'ls -la /etc/nginx/sites-enabled/' + ) + ok, stdout, err = ssh_command(verify_cmd, timeout=30) + if not ok: + log_error(f"验证步骤失败: {err}") + log_error(f"实际输出: {stdout}") + return False + log_info("验证结果:") + for line in stdout.split('\n'): + if line.strip(): + log_info(f" {line}") + log_info("启用站点配置完成") + return True # ============================================================================ @@ -361,12 +379,8 @@ def deploy_nginx(): return False log_info("启用站点配置...") - ok, _, err = ssh_command( - f"ln -snf {remote_conf} /etc/nginx/sites-enabled/{DOMAIN}.conf " - f"&& rm -f /etc/nginx/sites-enabled/default" - ) - if not ok: - log_error(f"启用站点失败: {err}") + if not enable_nginx_site(remote_conf, DOMAIN): + log_error("启用站点失败(详见 enable_nginx_site 内部日志)") return False log_info("验证 Nginx 配置...")