apache ubuntu-11.10

Error de Ubuntu con apache:(98) Dirección ya en uso



ubuntu-11.10 (14)

Recibo este error cuando intento iniciar Apache en Ubuntu.

(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.

Tengo esto en mi ports.conf

NameVirtualHost *:80 Listen 80

Este es mi archivo vhost

<VirtualHost *:80> ServerAdmin [email protected] ServerName rails.server.com # ServerAlias DocumentRoot /var/www/sample_app/current/public ErrorLog /var/www/sample_app/error.log RailsEnv production <Directory "/var/www/sample_app/current/public"> Options Indexes FollowSymLinks MultiViews Order allow,deny Allow from all </Directory> </VirtualHost>

¿Qué me estoy perdiendo?


Lista de servicios actualmente en ejecución,

$ sudo netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 6399/python tcp 0 0 0.0.0.0:53670 0.0.0.0:* LISTEN 6681/Brackets-node .... ....

Encuentra solo servicios específicos,

$ sudo netstat -tulpn| grep python jpa@jpa-dell:~/odoo/master-hr-holidays-newapi-jpa$ sudo netstat -tulpn| grep python tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 6399/python tcp 0 0 127.0.0.1:41974 0.0.0.0:* LISTEN 3123/python

Notaste el resultado anterior PID (6399) ejecutando python.

Mata ese servicio usando el siguiente comando,

$ sudo kill -9 -6399

Ahora los servicios están completamente parados, puedes comenzar de nuevo normalmente.

Comando extra para encontrar servicios en ejecución,

$ ps -ef $ ps -ef | grep python


Asegúrese de no tener el comando Listen 80 en más de un lugar.

En mi caso, recibí el mismo error y el motivo fue que este comando estaba en ports.conf y sites-enabled / 000-default.


Cuando reinicie o inicie su servidor a través de la terminal, es posible que haya olvidado agregar sudo antes del comando.

Use sudo /etc/init.d/apache2 reload lugar de /etc/init.d/apache2 reload


En mi caso fue nginx (porque lo tengo en mi servidor).

sudo service nginx stop sudo service apache2 start


En mi caso, ssl.conf archivo ssl.conf predeterminado ( ssl.conf nombre se cambió a ssl.conf.bak ), y tenía mi propio archivo de configuración ssl.

Luego hice una yum update y actualicé apache ... Lo cual también reintrodujo el archivo ssl.conf , lo que significa que tuve 2 archivos de configuración con Listen 443 .

Solución (genérico - CentOS): vaya a /etc/httpd/conf.d , haga un grep -r ''Listen'' . , vea si tiene declaraciones de Listen XXX duplicadas, elimínelas según sea necesario.


En todos los casos, matar el proceso puede no funcionar, ya que el proceso que usa el puerto 80 se reiniciará y no permitirá usar el puerto. Entonces, lo que se puede hacer es cambiar el puerto de apache, si eso no importa.

Dos cosas deben ser cambiadas para eso:

  1. Abra /etc/apache2/ports.conf con cualquier editor de texto y cambie el valor de la entrada Listen 80 al puerto deseado (por ejemplo, Listen 8080 ).

  2. Cambie la entrada para <virtualhost 80> al mismo número de puerto que dio en el archivo /etc/apache2/ports.conf en /etc/apache2/sites/enabled/000-default (por ejemplo, <virtualhost 8080> ).


Esto se debe a que el puerto 80 se desplaza usado por otro servicio.

sudo killall httpd

Compruebe que cualquier servicio está utilizando 80 aún

sudo netstat -tulpn| grep :80

y reiniciar el servidor

sudo service httpd start


Excepto el proceso de búsqueda de soluciones que se ejecuta en: 80 y kill, luego vuelve a comenzar

Este error podría aparecer si tiene varias entradas "Escuchar" en el archivo apache conf o en cualquier archivo .conf incluido en el archivo apache conf. Espero que esto ayude a alguien .. !!


Parece que el puerto 80 ya está tomado. Use otro puerto o pruebe netstat ( grep el resultado para seleccionar solo la fila con el valor 80 en él), ps y kill para ver qué aplicación ocupa el puerto y apagarlo.


Tuve el mismo problema con una causa muy diferente. Estoy ejecutando Apache 2.4.7 con PHP 5.5.6 en CentOS 6.5.

Desordenado php.ini al tener AMBOS output_handler = ob_gzhandler AND zlib.output_compression = On (cualquiera de los dos, no ambos, puede configurarse).

Así que al reiniciar Apache, se enlaza al puerto 80 pero no sucede nada más. Parece que se está ejecutando, pero el error de php lo ha bloqueado en alguna parte.

La clave fue verificar "php -v" ... cuando vi que no devolvía nada (escribió el error en error_log), reparé php.ini y Apache estaba feliz de nuevo.

Tal vez esto ayude a alguien ...


sudo kill -9 -2321 (pid) Reiniciar BT Hecho ..... no es necesario realizar cambios en la configuración. expediente.


Obtuve este error en una instalación nueva de Ubuntu 12.10 al iniciar apache2.

Es un error en el apache2. Se cuelga en el fondo. Aquí está mi tutorial de dónde podrían estar los errores en el software.

Aquí está el error que tengo:

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]

¿Dirección ya en uso? ¿Qué podría estar usando? Echale un vistazo:

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

Eso significa que apache2 está evitando que se inicie apache2. Extraño. Esto confirmará:

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

Sí, en este caso se está ejecutando apache2, estaba intentando iniciar apache2 por segunda vez en el mismo puerto.

Lo que me confunde es que el service informa que apache2 NO se está ejecutando:

el@titan:~$ sudo service apache2 status Apache2 is NOT running.

Y cuando consulta a apache2ctl por su estado, se bloquea.

root@titan:~# /usr/sbin/apache2ctl status **hangs until Ctrl-C is pressed.

Así que Ubuntu parece tener problemas para administrar apache2 en el arranque. Tiempo para detener apache2:

root@titan:~# /usr/sbin/apache2ctl stop httpd (no pid file) not running

Una gran pista! ¡Tratas de detener apache2 y se pierde la identificación del proceso! ¡Así que Ubuntu no puede detener apache2 porque no sabe dónde está!

Usted pensaría que un reinicio lo arreglaría, pero no lo hace porque apache2 comienza en el arranque y se bloquea. El proceso de arranque normal para apache2 no funciona correctamente.

Entonces, ¿cómo solucionarlo?

Pude arreglar esto analizando la salida del comando ps . Observe que el comando ps nos dice que ese proceso se inició con "/etc/rc2.d/S91apache2 start".

Ese es el programa ofensivo que necesita una patada rápida.

/etc/rc2.d/S91apache2 es el enlace simbólico que se utiliza para iniciar apache2 cuando se inicia la computadora. Por alguna razón, parece estar iniciando apache2 y luego se cuelga. Así que tendremos que decirle que no hagamos eso.

Así que ve a ver /etc/rc2.d/S91apache2 .

el@titan:/etc/rc2.d$ ls -l lrwxrwxrwx 1 root root 17 Nov 7 21:45 S91apache2 -> ../init.d/apache2*

Es un enlace simbólico que no queremos que esté allí. Haga esto para evitar que apache2 se inicie en el arranque:

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

Reinicie la computadora para asegurarse de que apache2 no se inicie y se bloquee. Bien. Ahora PODRÍAS poner a apache2 de la forma en que estaba, pero eso haría que vuelva a fallar.

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

En su lugar, inicie el apache2 de esta manera:

sudo service apache2 start

Y el apache2 está de vuelta y vuelve a servir páginas. Parece que hay algunos errores graves con apache2 / Ubuntu 12.10 que hacen que apache2 se inicie y se bloquee. Esta es una solución, supongo que la solución es obtener nuevas versiones de apache2 y Ubuntu y esperar lo mejor.


netstat -ltnp | grep :80

Esto devolvería lo siguiente:

tcp6 0 0 ::: 80 ::: * ESCUCHAR 1047 / apache2

A continuación, ejecute el siguiente comando:

sudo kill -9 1047

(1047 - pid no)

(El pid que aparece en su instancia particular.)

Reinicie Apache.

sudo service apache2 restart

Referencia a los foros de Ubuntu .


sudo netstat -tulpn| grep :80

pkill el proceso (nginx?)

Desactive cualquier host virtual que esté enlazando al puerto 80 que no desea (nginx?). Está en / etc / nginx / sites-enabled o / etc / apache2 / sites-enabled