fix: 增强acme.sh安装验证逻辑,添加详细诊断信息

问题:
- acme.sh安装显示成功,但文件验证立即失败
- 无法判断具体原因(路径/权限/时序问题)

改进:
1. 添加2秒等待,确保文件系统同步
2. 分步骤验证:目录 → 文件 → 权限 → 运行
3. 失败时显示目录内容,方便诊断
4. 自动修复权限问题(chmod +x)
5. 测试脚本实际可运行性(--version)

影响范围:
- deploy_acme_letsencrypt()
- deploy_acme_zerossl()
- deploy_acme_buypass()

相关提交:
- e915d5e (添加基础错误检查)
- 4a73a8c (Gitee镜像加速)
- a7aca93 (智能SSL fallback)
This commit is contained in:
WanWanYun
2025-11-13 01:51:22 +08:00
parent a7aca93355
commit 18512d92ed

View File

@@ -1338,11 +1338,40 @@ deploy_acme_letsencrypt() {
fi fi
# 确认acme.sh可用 # 确认acme.sh可用
if [[ ! -f ~/.acme.sh/acme.sh ]]; then echo ""
print_error "acme.sh 未正确安装" print_info "验证 acme.sh 安装..."
# 等待文件系统同步
sleep 2
# 检查安装目录
if [[ ! -d ~/.acme.sh ]]; then
print_error "安装目录不存在: ~/.acme.sh"
return 1 return 1
fi fi
# 检查主脚本文件
if [[ ! -f ~/.acme.sh/acme.sh ]]; then
print_error "主脚本文件不存在: ~/.acme.sh/acme.sh"
print_info "目录内容:"
ls -la ~/.acme.sh/ 2>&1 | head -10 || echo "无法列出目录"
return 1
fi
# 检查脚本是否可执行
if [[ ! -x ~/.acme.sh/acme.sh ]]; then
print_warning "脚本不可执行,正在添加执行权限..."
chmod +x ~/.acme.sh/acme.sh
fi
# 测试脚本是否能运行
if ! ~/.acme.sh/acme.sh --version &> /dev/null; then
print_error "acme.sh 无法运行"
return 1
fi
print_success "acme.sh 验证通过"
# 申请证书 # 申请证书
echo "" echo ""
print_info "正在申请 Let's Encrypt 证书..." print_info "正在申请 Let's Encrypt 证书..."
@@ -1408,11 +1437,40 @@ deploy_acme_zerossl() {
fi fi
# 确认acme.sh可用 # 确认acme.sh可用
if [[ ! -f ~/.acme.sh/acme.sh ]]; then echo ""
print_error "acme.sh 未正确安装" print_info "验证 acme.sh 安装..."
# 等待文件系统同步
sleep 2
# 检查安装目录
if [[ ! -d ~/.acme.sh ]]; then
print_error "安装目录不存在: ~/.acme.sh"
return 1 return 1
fi fi
# 检查主脚本文件
if [[ ! -f ~/.acme.sh/acme.sh ]]; then
print_error "主脚本文件不存在: ~/.acme.sh/acme.sh"
print_info "目录内容:"
ls -la ~/.acme.sh/ 2>&1 | head -10 || echo "无法列出目录"
return 1
fi
# 检查脚本是否可执行
if [[ ! -x ~/.acme.sh/acme.sh ]]; then
print_warning "脚本不可执行,正在添加执行权限..."
chmod +x ~/.acme.sh/acme.sh
fi
# 测试脚本是否能运行
if ! ~/.acme.sh/acme.sh --version &> /dev/null; then
print_error "acme.sh 无法运行"
return 1
fi
print_success "acme.sh 验证通过"
# 申请证书 # 申请证书
echo "" echo ""
print_info "正在申请 ZeroSSL 证书..." print_info "正在申请 ZeroSSL 证书..."
@@ -1472,11 +1530,40 @@ deploy_acme_buypass() {
fi fi
# 确认acme.sh可用 # 确认acme.sh可用
if [[ ! -f ~/.acme.sh/acme.sh ]]; then echo ""
print_error "acme.sh 未正确安装" print_info "验证 acme.sh 安装..."
# 等待文件系统同步
sleep 2
# 检查安装目录
if [[ ! -d ~/.acme.sh ]]; then
print_error "安装目录不存在: ~/.acme.sh"
return 1 return 1
fi fi
# 检查主脚本文件
if [[ ! -f ~/.acme.sh/acme.sh ]]; then
print_error "主脚本文件不存在: ~/.acme.sh/acme.sh"
print_info "目录内容:"
ls -la ~/.acme.sh/ 2>&1 | head -10 || echo "无法列出目录"
return 1
fi
# 检查脚本是否可执行
if [[ ! -x ~/.acme.sh/acme.sh ]]; then
print_warning "脚本不可执行,正在添加执行权限..."
chmod +x ~/.acme.sh/acme.sh
fi
# 测试脚本是否能运行
if ! ~/.acme.sh/acme.sh --version &> /dev/null; then
print_error "acme.sh 无法运行"
return 1
fi
print_success "acme.sh 验证通过"
# 申请证书 # 申请证书
echo "" echo ""
print_info "正在申请 Buypass 证书..." print_info "正在申请 Buypass 证书..."