设置 SSL 配置后 Apache 服务器出现错误

设置 SSL 配置后 Apache 服务器出现错误

我正在运行 EC2 Linux 2 AMI,并且正在关注AWS 教程在我的服务器上启用 HTTPS。

但当我尝试重新启动 Apache 时,日志中显示错误

Apr 10 06:56:40 <maskediphere> systemd[1]: Starting The Apache HTTP Server... Apr 10 06:56:40 <maskediphere> httpd[30696]: (98)Address already in use: AH00072: make_sock: could not bind t...:]:80 Apr 10 06:56:40 <maskediphere> httpd[30696]: (98)Address already in use: AH00072: make_sock: could not bind t....0:80 Apr 10 06:56:40 <maskediphere> httpd[30696]: no listening sockets available, shutting down Apr 10 06:56:40 <maskediphere> httpd[30696]: AH00015: Unable to open logs Apr 10 06:56:40 <maskediphere> systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE Apr 10 06:56:40 <maskediphere> systemd[1]: Failed to start The Apache HTTP Server. Apr 10 06:56:40 <maskediphere> systemd[1]: Unit httpd.service entered failed state. Apr 10 06:56:40 <maskediphere> systemd[1]: httpd.service failed.

如何复制:使用 ssl.conf 代码(下面链接),运行命令“ sudo systemctl restart httpd”。

此命令的输出: Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

期望的行为:Apache 服务器应该重新启动,但是尽管 Apache 服务器(httpd 服务)实际上正在机器上运行,但服务器并没有重新启动。

到目前为止我已经尝试了很多方法,包括:

  1. 确保我的证书被命名为 .pem 文件
  2. 相同的 .pem 文件引用位于 /etc/httpd/conf.d/ 目录中的 ssl.conf 文件中
  3. 注释掉 SSLCertificateKeyFile

资源:

  1. ssl.conf 文件代码
  2. 每个端口上可用的正在运行的服务列表:每个端口上可用的正在运行的服务列表

答案1

我解决了这个问题,对于遇到类似问题的人,请尝试以下方法:

  1. 在终端中输入lsof -i :80- 这将列出给定端口号上所有正在运行的进程 ID(您可以将 80 替换为任何端口号。在我的情况下,我输入了 80,因为我的 Apache 服务在此端口上运行)。看到正在运行的进程 ID 列表后,找到 Apache(httpd)的 ID。httpd 下可能有多个进程 ID,在这种情况下,复制/记住列表顶部的进程 ID。

  2. 输入sudo kill -9 process_id- 将 process_id 替换为您在步骤 1 中记下的 ID。这将终止/停止 Apache 服务。

  3. 输入sudo systemctl start httpd- 这将再次启动 Apache/httpd 服务器

请小心并注意:如果您正在运行具有实时用户的服务器,如果步骤 3 对您不起作用并且步骤 2 已经终止服务,他们可能会受到影响。就我而言,一切都很好,但似乎命令sudo systemctl restart httpd不起作用,直到我手动终止正在运行的进程 ID 并再次启动 Apache。

相关内容