Ir al contenido
EuroVPSEuroVPS

Cómo resolver problemas comunes de Apache

FAQ de EuroVPS

Actualizado el 4 min de lectura

Shared FAQ page chrome: see INDEX-AND-CHROME.md. Translate once.

Body

Apache es un servidor web estable y muy extendido. La mayoría de los problemas vienen de la configuración, de conflictos de puertos o de la integración con otros servicios del mismo host.

Revisar los logs de Apache

Empiece por el log de errores. Ubicaciones habituales:

Las ubicaciones habituales del log de errores de Apache, como referencia rápida, son estas.

cPanel

/usr/local/apache/logs/error_log

Plesk

/var/log/httpd/error_log

CentOS/Fedora

/var/log/httpd/error_log

Debian/Ubuntu

/var/log/apache2/error_log
 tail -f  /var/log/httpd/error_log

Problemas comunes de Apache

Conflictos de puertos

Compruebe que nada más está enlazado a los puertos 80 y 443:

[root@server ~]# netstat -plan | grep :80
tcp        0      0 203.0.113.10:80            0.0.0.0:*                   LISTEN      18950/nginx         
tcp        0      0 203.0.113.10:80            203.0.113.10:52630         TIME_WAIT   -                   
tcp        0      0 203.0.113.10:51704         203.0.113.10:80            TIME_WAIT   -                   
tcp        0      0 203.0.113.10:80            203.0.113.10:52626         TIME_WAIT   -                   
tcp        0      0 203.0.113.10:80            203.0.113.10:51712         TIME_WAIT   -                   
tcp        0      0 203.0.113.10:80            203.0.113.10:52622         TIME_WAIT   -    

Como ve, el servidor Nginx ya está usando el puerto 80 en la interfaz pública y Apache no arrancará. Detenga el servidor Nginx y vuelva a arrancar Apache.

Otras instancias de Apache bloqueadas que retienen los puertos.

Puede recibir errores parecidos a los de conflicto de puertos, y la causa pueden ser procesos de Apache ya iniciados o no terminados que retienen los puertos. Use los comandos siguientes para ver si existen procesos así en el servidor.

[root@server ~]# ps aux  | grep "httpd\|apache"  | grep -v grep
root     18663  0.0  0.6 394336 32168 ?        SNs  15:25   0:00 /usr/sbin/httpd
apache   18666  0.0  0.3 252844 17436 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18667  0.0  0.5 395040 25532 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18668  0.0  0.5 395440 25592 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18670  0.0  0.5 395032 25716 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18671  0.0  0.5 394984 25676 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18672  0.0  0.5 394944 25640 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18673  0.0  0.5 395000 25468 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18674  0.0  0.4 394912 25384 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18675  0.0  0.5 395076 25780 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18676  0.0  0.5 394940 25636 ?        SN   15:25   0:00 /usr/sbin/httpd
apache   18677  0.0  0.4 394892 25280 ?        SN   15:25   0:00 /usr/sbin/httpd

Termine todos los procesos de Apache encontrados con el comando kill, como se muestra a continuación.

[root@server ~]# kill -9   18666  18663   18667  18668 18670 18671 18672 18673 18674 18675 18676 18677 

Errores de sintaxis en el archivo httpd.conf

Un error de sintaxis en httpd.conf impide que Apache arranque. El error indica la línea:

Syntax error on line 218 of  /etc/httpd/conf/httpd.conf

Compruebe la sintaxis antes de reiniciar:

[root@server ~]# apachectl -t
Syntax OK
[root@server ~]# httpd -t
Syntax OK

En las variantes Debian y Ubuntu puede comprobar la sintaxis así.

apache2ctl -t
Similarly you cause the command with -S switch to list all virtual hosts with essential information like configured ports, defined line number in configuration etc.

Del mismo modo, puede usar el comando con el modificador -S para listar todos los virtual hosts con su información esencial, como los puertos configurados o la línea de la configuración donde se definen.

[root@server ~]# httpd -S
VirtualHost configuration:
127.0.0.1:7080         is a NameVirtualHost

Apache no arranca si el archivo .htaccess no está bien creado.

Es necesario configurar los virtual hosts de Apache con las definiciones adecuadas para que se tengan en cuenta los archivos .htaccess. Si faltan esas directivas, el .htaccess no se tiene en cuenta y sus definiciones no se cargan. Esta es una definición de ejemplo.

</VirtualHost>
<Directory /home/eurovps/public_html>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Hecho esto, Apache tendrá en cuenta el .htaccess creado en /home/eurovps/public_html/. El archivo necesita modo 644 y el usuario del dominio como propietario:

Creación y permisos de un .htaccess de ejemplo.

vi /home/eurovps/public_html/.htaccess
#++++Sample_contents++++#
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#++++Sample_contents++++#
Esc  + :wq

chmod 644 /home/eurovps/public_html/.htaccess
chown eurovps.eurovps  /home/eurovps/public_html/.htaccess

Consejos: pruebe a activar logs detallados para depurar (LogLevel debug). Revise syslog y dmesg por si dan alguna pista sobre la terminación de procesos, y compruebe la memoria libre y el espacio en disco disponible en el servidor.

De las FAQ de EuroVPS.

Más en la categoría «Guías»

Su próximo socio de infraestructura

¿Todavía tiene
una pregunta?

Díganos qué intenta hacer. Un ingeniero lo leerá y le responderá.

+357 222 32280
Un ingeniero de EuroVPS transporta un nodo de servidor en la sala del datacenter
Una conversación con las personas que cuidarán de su infraestructura.

Empecemos por su infraestructura.

Un poco de contexto nos ayuda a empezar la conversación adecuada.

Usaremos sus datos para responder a su consulta. Política de privacidad