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
(대부분은 apache
as 이지만 user
전부는 아님). 나는 다음을 사용하여 그들 각각을 죽였습니다.
sudo kill -9 [PID]
그러다가 도망갔더니 sudo apachectl restart
정말 효과가 있었어요.