安装 SSL 证书后如何修复 apache2 的问题?

安装 SSL 证书后如何修复 apache2 的问题?

我在 Ubuntu 20.04 LTS 上安装了 Apache/2.4.41。这是在云虚拟机上。

服务器安装了 PHP 7.4,PHP 7.3。Phyton 被错误地完全删除,然后又重新安装。然后,我尝试恢复尽可能多的库。不确定是否还有一些缺失。

我安装了 let'sencrypt 的 SSL 证书。自安装以来,我一直无法访问该网站。有时浏览器会显示该网站无法访问。要修复此问题,我必须使用 ssh 连接服务器并重新启动 apache sudo service apache2 restart。之后,该网站再次可访问。

sudo apache2ctl configtest
Syntax OK

这有什么问题?我不想在必须重新安装 apache2 的情况下丢失配置文件。看来我每天都要重新启动 apache2。

尝试@Matigo 的解决方案后,清除了 error.log,并重新启动了 apache2:

猫/var/log/apache2/error.log

[Sun Mar 07 22:38:42.177067 2021] [mpm_prefork:notice] [pid 1566] AH00169: caught SIGTERM, shutting down
[Sun Mar 07 22:38:42.264574 2021] [mpm_prefork:notice] [pid 9359] AH00163: Apache/2.4.41 (Ubuntu) OpenSSL/1.1.1j configured -- resuming normal operations
[Sun Mar 07 22:38:42.264636 2021] [core:notice] [pid 9359] AH00094: Command line: '/usr/sbin/apache2'

sudo systemctl status apache2

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Mon 2021-03-08 23:25:02 UTC; 14h ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 9348 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 9359 (code=exited, status=1/FAILURE)

Mar 07 22:38:42 bhub systemd[1]: Starting The Apache HTTP Server...
Mar 07 22:38:42 bhub systemd[1]: Started The Apache HTTP Server.
Mar 08 23:25:02 bhub systemd[1]: apache2.service: Main process exited, code=exited, status=1/FAILURE
Mar 08 23:25:02 bhub systemd[1]: apache2.service: Failed with result 'exit-code'.

答案1

从您的 Apache 日志来看,有几件事需要注意。

Unable to load dynamic library首先,让我们通过重新安装这些库并确保它们已启用来解决这些问题:

  1. 重新安装库:
    sudo apt install php-xmlrpc php-xsl php-imagick 
    
  2. 确保它们已启用:
    sudo phpenmod xmlrpc 
    sudo phpenmod xsl 
    sudo phpenmod imagick 
    

对于Module X already loaded in Unknown on line 0,这可能是重复加载调试php.ini

  1. 检查您的代码中php.ini是否没有xdebug.so以下任何一行:
    extension=
    zend_extension=
    
  2. 确认/etc/php/7.x/apache2/etc/php/7.x/cli/目录中的php.ini文件没有xdebug.so指定多次。(请务必替换7.x为您正在运行的 PHP 版本。如果您运行的是 PHP 5.x,则需要查找etc/php5这些目录。)

至于 SSL 问题,日志中没有任何内容具体指出为什么无法正确加载,因此您可能需要error.log在修复上述问题后更新您的问题以包含更新的结果,假设解决上述问题不能解决 Apache 安装的根本问题

答案2

由于 apache2 失败后,重新启动服务解决了问题;我在 /lib/systemd/system/apache2.service 中的 [Install] 之前添加了以下几行:

# Added
Restart=on-failure
Restart=always
RestartSec=3
# Added

这解决了我的问题。我希望它能帮助其他遇到类似问题的人。

相关内容