
Ubuntu 12.10에 Apache 2를 설치했습니다. 을 사용하여 서비스를 시작하려고 하면 sudo /etc/init.d/apache2 start
다음 메시지가 나타납니다.
*Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 127.0.0.1:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information. [fail]
답변1
해당 포트에서 이미 실행 중인(또는 "바인딩된") 무언가가 있을 가능성이 높습니다. 문제의 프로세스를 보려면 다음 명령을 시도하십시오.
sudo lsof -i :80
여기에는 포트 80에서 수신 대기하는 프로세스가 나열됩니다. 범인을 찾으면 어떤 프로세스를 사용하는지 알 수 있습니다 kill
( kill -9
수퍼유저로서도 마찬가지입니다).
더 일찍 시작했다고 가정하면 Apache 인스턴스가 "부실"해지거나 좀비가 되었을 수도 있다는 점을 명심하십시오. 후자의 경우 경우에 따라 재부팅이 필요할 수도 있습니다.
그렇지 않으면 dedunumax의 답변을 따르십시오.
답변2
노력하다sudo service apache2 start
그런 다음 입력
sudo service apache2 status
두 번째 명령은 실행 중인지 여부를 표시합니다.
답변3
다음 구성으로 인해 이 오류 메시지가 나타납니다.
# cat /etc/hosts
127.0.0.1 localhost
127.0.0.1 foo
...
# cat /etc/apache2/sites-enabled/foo
<VirtualHost foo:80>
...
# cat /etc/apache2/ports.conf
...
NameVirtualHost *:80
Listen localhost:80
...
ports.conf
다음으로 변경하면 문제가 해결되었습니다.
NameVirtualHost *:80
Listen 127.0.0.1:80
답변4
Nginx와 같은 다른 소프트웨어가 실행 중이고 포트 80을 사용할 수 있습니다.
동일한 메시지 오류로 인해 Apache2가 내 VPS에서 충돌했으며 Nginx가 서버에 있고 며칠 후에 무언가(크론 작업?)가 시작되었음을 발견했습니다. 이는 포트 :80을 사용하고 어떻게든 Apache2보다 우선순위를 갖기 때문에 충돌을 유발합니다.
이미 포트 :80을 사용하고 있는 것이 있는지 확인하려면 다음을 입력하십시오.
netstat -tulpn
Nginx를 제거하고("remove --purge" 사용) nginx 프로세스를 종료한 다음 Apache2를 다시 시작하여 문제를 해결했습니다.