J'ai eu cette erreur lors d'une nouvelle installation au démarrage d'apache2 Ubuntu 12.10.
C'est un bug dans le apache2. Il est accroché à l'arrière-plan. Voici ma procédure pas à pas où les bugs pourraient être dans le logiciel.
Voici l'erreur que j'ai eu:
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]
Adresse déjà utilisée? Que pourrait-il utiliser? Vérifiez-le:
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
Cela signifie qu'apache2 empêche apache2 de démarrer. Bizarre. Cela confirmera:
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
Oui, dans ce cas, apache2 est en cours d'exécution, j'essayais de démarrer apache2 une deuxième fois sur le même port.
Ce qui me perturbe, c'est que service
rapporte qu'apache2 n'est PAS en cours d'exécution:
el@titan:~$ sudo service apache2 status
Apache2 is NOT running.
Et lorsque vous interrogez apache2ctl sur son statut, il se bloque.
root@titan:~# /usr/sbin/apache2ctl status
**hangs until Ctrl-C is pressed.
Ubuntu semble donc avoir du mal à gérer Apache2 au démarrage. Il est temps d'arrêter apache2:
root@titan:~# /usr/sbin/apache2ctl stop
httpd (no pid file) not running
Un gros indice! Vous essayez d'arrêter apache2 et il a perdu l'identifiant du processus! Ubuntu ne peut donc pas arrêter Apache2 car il ne sait pas où il se trouve!
Vous pourriez penser qu'un redémarrage résoudrait le problème, mais ce n'est pas le cas, car apache2 démarre au démarrage et se bloque. Le processus de démarrage normal d’apache2 ne fonctionne pas correctement.
Alors, comment y remédier?
J'ai pu résoudre ce problème en analysant le ps
résultat de la commande. Notez que la ps
commande nous indique que ce processus a été lancé par "/etc/rc2.d/S91apache2 start".
C’est le programme fautif qui a besoin d’un coup d’œil rapide.
/etc/rc2.d/S91apache2
est le lien symbolique utilisé pour démarrer apache2 lorsque l'ordinateur démarre. Pour une raison quelconque, il semble commencer apache2, puis se bloque. Nous devrons donc lui dire de ne pas le faire.
Alors allez voir ça /etc/rc2.d/S91apache2
.
el@titan:/etc/rc2.d$ ls -l
lrwxrwxrwx 1 root root 17 Nov 7 21:45 S91apache2 -> ../init.d/apache2*
C'est un lien symbolique que nous ne voulons pas qu'il soit là. Faites ceci pour empêcher le démarrage d’apache2 au démarrage:
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
Redémarrez l'ordinateur pour vous assurer qu'apache2 ne démarre pas et ne se bloque pas. OK bien. Maintenant, vous POUVEZ remettre Apache2 en place, mais cela le ferait échouer à nouveau.
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
Au lieu de cela, démarrez apache2 comme ceci:
sudo service apache2 start
Et Apache2 est de nouveau en service et sauvegarde des pages. Il semble y avoir de sérieux bugs avec apache2 / Ubuntu 12.10 qui font que apache2 démarre et se bloque. C’est une solution de contournement. Je suppose que le correctif consiste à obtenir les nouvelles versions d’apache2 et d’Ubuntu et à espérer que tout ira pour le mieux.