Wystąpił ten błąd podczas nowej instalacji podczas uruchamiania Apache2 Ubuntu 12.10.
To błąd w apache2. Zawiesza się w tle. Oto mój przewodnik, gdzie mogą znajdować się błędy w oprogramowaniu.
Oto błąd, który dostałem:
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]
Adres już w użyciu? Co może go używać? Sprawdź to:
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
Oznacza to, że apache2 uniemożliwia uruchomienie apache2. Dziwaczny. To potwierdzi:
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
Tak, w tym przypadku działa apache2, próbowałem uruchomić apache2 po raz drugi na tym samym porcie.
To, co mnie dezorientuje, to to, że service
raporty, że apache2 NIE działa:
el@titan:~$ sudo service apache2 status
Apache2 is NOT running.
A kiedy pytasz apache2ctl o jego status, zawiesza się.
root@titan:~# /usr/sbin/apache2ctl status
**hangs until Ctrl-C is pressed.
Wydaje się, że Ubuntu ma problem z zarządzaniem apache2 podczas uruchamiania. Czas zatrzymać apache2:
root@titan:~# /usr/sbin/apache2ctl stop
httpd (no pid file) not running
Wielka wskazówka! Próbujesz zatrzymać apache2, a on utracił identyfikator procesu! Więc Ubuntu nie może zatrzymać apache2, ponieważ nie wie gdzie jest!
Można by pomyśleć, że ponowne uruchomienie go naprawi, ale tak się nie dzieje, ponieważ apache2 uruchamia się podczas uruchamiania i zawiesza. Normalny proces uruchamiania apache2 nie działa poprawnie.
Jak to naprawić?
Udało mi się to naprawić , analizując dane ps
wyjściowe polecenia. Zauważ, że ps
polecenie mówi nam, że proces ten został uruchomiony przez „/etc/rc2.d/S91apache2 start”.
To jest program obrażający, który wymaga szybkiego kopnięcia.
/etc/rc2.d/S91apache2
jest dowiązaniem symbolicznym używanym do uruchomienia apache2 podczas uruchamiania komputera. Z jakiegoś powodu wydaje się, że uruchamia apache2, a następnie się zawiesza. Więc musimy to powiedzieć, żeby tego nie robić.
Więc spójrz na to /etc/rc2.d/S91apache2
.
el@titan:/etc/rc2.d$ ls -l
lrwxrwxrwx 1 root root 17 Nov 7 21:45 S91apache2 -> ../init.d/apache2*
Jest to symboliczny link, którego nie chcemy, żeby tam był. Zrób to, aby zapobiec uruchamianiu apache2 podczas uruchamiania:
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
Uruchom ponownie komputer, aby upewnić się, że apache2 nie uruchomi się i nie zawiesi. Ok dobrze. Teraz MUSISZ przywrócić apache2 z powrotem tak, jak było, ale to spowodowałoby, że znów się nie powiedzie.
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
Zamiast tego uruchom apache2 w następujący sposób:
sudo service apache2 start
A apache2 ponownie tworzy kopie zapasowe i wyświetla strony. Wydaje się, że istnieją poważne błędy w Apache2 / Ubuntu 12.10, które powodują, że apache2 uruchamia się i zawiesza. Jest to obejście, jak sądzę, poprawką jest uzyskanie nowszych wersji apache2 i Ubuntu i nadzieja na najlepsze.