apache2 Ubuntu 12.10을 시작할 때 새로 설치하면이 오류가 발생했습니다.
apache2의 버그입니다. 백그라운드에 걸려 있습니다. 다음은 소프트웨어에서 버그가있는 위치에 대한 연습입니다.
내가 가진 오류는 다음과 같습니다.
el@titan:~$ sudo service apache2 start
* Starting web server apache2
(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
Action 'start' failed.
The Apache error log may have more information.
[fail]
이미 사용중인 주소? 무엇을 사용할 수 있습니까? 확인 해봐:
el@titan:~$ grep -ri listen /etc/apache2
/etc/apache2/apache2.conf:# supposed to determine listening ports for incoming connections, and which
/etc/apache2/apache2.conf:# Include list of ports to listen on and which to use for name based vhosts
/etc/apache2/ports.conf:Listen 80
/etc/apache2/ports.conf: Listen 443
/etc/apache2/ports.conf: Listen 443
그것은 아파치 2가 아파치 2의 시작을 막고 있다는 것을 의미한다. 기괴한. 이것은 확인합니다 :
el@titan:~$ ps -ef | grep apache2
root 1146 954 0 15:51 ? 00:00:00 /bin/sh /etc/rc2.d/S91apache2 start
root 1172 1146 0 15:51 ? 00:00:00 /bin/sh /usr/sbin/apache2ctl start
root 1181 1172 0 15:51 ? 00:00:00 /usr/sbin/apache2 -k start
root 1193 1181 0 15:51 ? 00:00:00 /bin/bash /usr/share/apache2/ask-for-passphrase 127.0.1.1:443 RSA
el 5439 5326 0 16:23 pts/2 00:00:00 grep --color=auto apache2
예,이 경우 apache2가 실행 중이며 동일한 포트에서 두 번째로 apache2를 시작하려고했습니다.
나를 혼란스럽게하는 service
것은 apache2가 실행되고 있지 않다는 보고입니다.
el@titan:~$ sudo service apache2 status
Apache2 is NOT running.
그리고 상태에 대해 apache2ctl을 쿼리하면 중단됩니다.
root@titan:~# /usr/sbin/apache2ctl status
**hangs until Ctrl-C is pressed.
따라서 우분투는 부팅시 apache2를 관리하는 데 문제가있는 것 같습니다. 아파치를 멈출 시간 2 :
root@titan:~# /usr/sbin/apache2ctl stop
httpd (no pid file) not running
큰 단서! apache2를 중지하려고하면 프로세스 ID가 손실됩니다! 그래서 우분투는 어디에 있는지 모르기 때문에 apache2를 멈출 수 없습니다!
재부팅하면 문제가 해결 될 것이라고 생각하지만 apache2는 부팅시 시작되어 중단되기 때문이 아닙니다. apache2의 정상적인 부팅 프로세스가 제대로 작동하지 않습니다.
어떻게 고치나요?
ps
명령 출력 을 분석 하여이 문제를 해결할 수있었습니다 . 이 ps
명령은 프로세스가 "/etc/rc2.d/S91apache2 start"에 의해 시작되었음을 알려줍니다.
그것은 빠른 발차기를 요구하는 불쾌한 프로그램입니다.
/etc/rc2.d/S91apache2
컴퓨터가 시작될 때 apache2를 시작하는 데 사용되는 기호 링크입니다. 어떤 이유로 든 apache2를 시작한 다음 중단됩니다. 우리는 그렇게하지 말라고해야합니다.
그럼 한번보세요 /etc/rc2.d/S91apache2
.
el@titan:/etc/rc2.d$ ls -l
lrwxrwxrwx 1 root root 17 Nov 7 21:45 S91apache2 -> ../init.d/apache2*
그것은 우리가 원하지 않는 상징적 인 링크입니다. 부팅시 apache2가 시작되지 않도록하려면 다음을 수행하십시오.
root@titan:~# sudo update-rc.d -f apache2 remove
Removing any system startup links for /etc/init.d/apache2 ...
/etc/rc0.d/K09apache2
/etc/rc1.d/K09apache2
/etc/rc2.d/S91apache2
/etc/rc3.d/S91apache2
/etc/rc4.d/S91apache2
/etc/rc5.d/S91apache2
/etc/rc6.d/K09apache2
컴퓨터를 재부팅하여 apache2가 시작되지 않고 멈추지 않도록하십시오. 그래 좋아. 이제 apache2를 원래 상태로 되돌릴 수 있지만 다시 실패하게됩니다.
root@titan:~$ sudo update-rc.d apache2 defaults //(don't do this)
Adding system startup for /etc/init.d/apache2 ...
/etc/rc0.d/K20apache2 -> ../init.d/apache2
/etc/rc1.d/K20apache2 -> ../init.d/apache2
/etc/rc6.d/K20apache2 -> ../init.d/apache2
/etc/rc2.d/S20apache2 -> ../init.d/apache2
/etc/rc3.d/S20apache2 -> ../init.d/apache2
/etc/rc4.d/S20apache2 -> ../init.d/apache2
/etc/rc5.d/S20apache2 -> ../init.d/apache2
대신 다음과 같이 apache2를 시작하십시오.
sudo service apache2 start
그리고 apache2가 백업되어 페이지를 다시 제공합니다. apache2 / Ubuntu 12.10에는 apache2가 시작되어 중단되는 심각한 버그가있는 것 같습니다. 이것은 해결 방법입니다. 해결책은 최신 버전의 apache2 및 Ubuntu를 가져 와서 최선을 다하기를 희망한다고 생각합니다.