2000개의 가상 호스트로 Apache를 다시 시작하는 데 몇 가지 문제가 있습니다.
CentOS 5.8 64비트에서 Apache 2.2.22 + PHP 5.4.6을 사용합니다.
다시 시작하려고 하면 다음과 같이 표시됩니다.
/etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]
내가 하면 killall -9 httpd
괜찮다가 한동안 그런 일이 다시 발생합니다.
답변1
적어도 init 스크립트가 시작한 PID 아래에서는 Apache가 시작되지 않은 것처럼 보입니다. "ps auxwww"의 출력을 확인(또는 여기에 제공)하세요.
내 가장 강한 직관에 따르면 아파치 루트 프로세스가 죽어서 하위 프로세스가 살아 있고 포트 80에서 수신 대기하고 있는 것 같습니다. 그렇다면 아파치 오류 로그와 시스템 로그를 살펴보고 루트 프로세스를 종료시키는 원인이 무엇인지 확인하십시오.
다른 가능성: init 스크립트 외부에서 수동으로 아파치를 시작하는 다른 것이 있거나 포트 80에서 수신 대기 중인 다른 것이 있을 수 있습니다(그러나 killall -9 httpd가 작동하는 이유는 설명되지 않습니다).
답변2
패키지 문제였습니다. 나는 webtactic repo에서 httpd를 얻었습니다. Lxcenter의 것으로 변경되었으며 매우 잘 작동합니다.)