@@ -58,19 +58,24 @@ func (cd *CertDeployer) DeployCertificate(domain, url string) error {
5858 return fmt .Errorf ("解压证书失败: %w" , err )
5959 }
6060
61- // 移动到配置的SSL目录
61+ // 2. 移动到配置的SSL目录
6262 if err := cd .moveCertificates (extractDir , sslPath , folderName ); err != nil {
6363 return fmt .Errorf ("移动证书失败: %w" , err )
6464 }
6565
66- // 3. 测试nginx配置
67- if err := cd .testNginxConfig (); err != nil {
68- return fmt .Errorf ("nginx配置测试失败: %w" , err )
69- }
66+ // 3. 检查nginx是否存在,如果存在则测试配置和重新加载
67+ if cd .isNginxAvailable () {
68+ // 测试nginx配置
69+ if err := cd .testNginxConfig (); err != nil {
70+ return fmt .Errorf ("nginx配置测试失败: %w" , err )
71+ }
7072
71- // 4. 重新加载nginx
72- if err := cd .reloadNginx (); err != nil {
73- return fmt .Errorf ("nginx重新加载失败: %w" , err )
73+ // 重新加载nginx
74+ if err := cd .reloadNginx (); err != nil {
75+ return fmt .Errorf ("nginx重新加载失败: %w" , err )
76+ }
77+ } else {
78+ fmt .Println ("nginx未安装或不在PATH中,跳过nginx相关操作" )
7479 }
7580 fmt .Printf ("证书部署完成: %s\n " , domain )
7681
@@ -240,6 +245,12 @@ func (cd *CertDeployer) moveCertificates(sourceDir, sslPath, folderName string)
240245 return nil
241246}
242247
248+ // isNginxAvailable 检查nginx是否可用
249+ func (cd * CertDeployer ) isNginxAvailable () bool {
250+ _ , err := exec .LookPath ("nginx" )
251+ return err == nil
252+ }
253+
243254// testNginxConfig 测试nginx配置
244255func (cd * CertDeployer ) testNginxConfig () error {
245256 ctx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
0 commit comments