Cómo resolver problemas comunes de Apache
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
Empecemos por su infraestructura.
Un poco de contexto nos ayuda a empezar la conversación adecuada.
