Apache (httpd) 服务器无法在 Redhat 7(Amazon ec2 实例)上启动

Apache (httpd) 服务器无法在 Redhat 7(Amazon ec2 实例)上启动

我从 RHEL 7 (Amazon ec2) 启动 Apache 服务器时遇到一些问题。我更大的目标是使用 Anaconda 环境从 ec2 实例托管 Flask 应用程序,但现在我只关心如何正确启动 httpd 服务。

我发现有很多类似的问题这里,这里,这里等等,但似乎都没有解决我遇到的确切问题。

我正在跟进本教程直到最后一个>字符,但是命令

sudo apachectl restart

sudo service httpd restart

两者都会导致错误并引导我检查systemctl status httpd.service更多信息。该文件的输出如下:

httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2018-04-06 21:00:42 UTC; 4s ago
Docs: man:httpd(8)
      man:apachectl(8)
Process: 32166 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 32165 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=0/SUCCESS)
Main PID: 32165 (code=exited, status=0/SUCCESS)
[long ec2 ip address] systemd[1]: Starting The Apache HTTP Server...
[long ec2 ip address] httpd[32165]: httpd (pid 28220) already running
[long ec2 ip address] kill[32166]: kill: cannot find process ""
[long ec2 ip address] systemd[1]: httpd.service: control process exited, code=exited status=1
[long ec2 ip address] systemd[1]: Failed to start The Apache HTTP Server.
[long ec2 ip address] systemd[1]: Unit httpd.service entered failed state.
[long ec2 ip address] systemd[1]: httpd.service failed.

返回的输出journalctl -xe相同。

我已经双重甚至三重检查发帖确认我的 ec2 安全组配置正确,确实如此。

有关我的系统的一些信息(不知道这些信息是否有帮助,但我认为最好包含它):

Apache Version: Apache/2.4.6 (Red Hat Enterprise Linux) configured

$ /usr/bin/python -V
    Python 2.7.5
$ sudo yum install mod_wsgi
    Package mod_wsgi-3.4-12.el7_0.x86_64 already installed and latest version
$ service httpd configtest
    Syntax OK
$ sudo chkconfig --levels 235 httpd on
    Note: Forwarding request to 'systemctl enable httpd.service' 

命令sudo netstat -lnp | grep :80返回tcp 0 0 :::0 :::* LISTEN 28220/httpd

我现在注意到该文件/etc/init.d/httpd不存在。这有关系吗?

通常,我会尽力查看错误日志并自己找出问题的原因,但我可以在任何地方识别的唯一错误是在 中/var/log/httpd/error_log,其中内容如下:

AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive

如果以前有人问过这个问题,请指导我。我已经到处寻找,到目前为止还没有运气。

干杯。

答案1

解决方案:感谢@GracefulRestart,我能够确定问题:

我认为我的错误在于对多个 ec2 实例使用相同的安全组(每个实例我现在都已停用)。不管怎样,我跑了pgrep httpd,看到返回了一个包含 7 个数字的列表。然后运行ps -aux查看我正在运行的进程的完整列表。该列表的底部是返回的所有 httpd 进程pgrep httpd(大多数都有apacheas user,但不是全部)。我用以下方法杀死了他们每个人:

sudo kill -9 [PID]

然后跑了sudo apachectl restart,果然成功了。

相关内容