Comment dépanner les problèmes courants d'Apache
Shared FAQ page chrome (breadcrumb, dates, read time, «Continuer la lecture», enquiry block, category labels): see INDEX-AND-CHROME.md. Translate once.
Body
Apache est un serveur web stable et très largement déployé. La plupart des problèmes viennent de la configuration, de conflits de ports ou de l'intégration avec d'autres services sur la même machine.
Consulter les journaux d'Apache
Commencez par le journal d'erreurs. Emplacements courants :
Les emplacements habituels du journal d'erreurs d'Apache sont indiqués ci-dessous, pour référence rapide.
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
Problèmes Apache courants
Conflits de ports
Vérifiez que rien d'autre n'écoute sur les ports 80 et 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 -
Comme vous le voyez, un serveur Nginx occupe déjà le port 80 sur l'interface publique et Apache ne démarrera pas. Arrêtez le serveur Nginx et relancez Apache.
D'autres instances Apache bloquées qui retiennent les ports.
Vous pouvez recevoir des erreurs semblables aux conflits de ports, dont la cause est un processus Apache déjà lancé et jamais terminé qui retient les ports. Utilisez les commandes ci-dessous pour voir si de tels processus existent sur le serveur.
[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
Tuez tous les processus Apache trouvés avec la commande kill, comme ci-dessous.
[root@server ~]# kill -9 18666 18663 18667 18668 18670 18671 18672 18673 18674 18675 18676 18677
Erreurs de syntaxe dans le fichier httpd.conf
Une erreur de syntaxe dans httpd.conf empêche Apache de démarrer. L'erreur indique la ligne :
Syntax error on line 218 of /etc/httpd/conf/httpd.conf
Vérifiez la syntaxe avant de redémarrer :
[root@server ~]# apachectl -t
Syntax OK
[root@server ~]
# httpd -t
Syntax OK
Sur Debian et Ubuntu, la vérification de syntaxe se fait comme ci-dessous.
apache2ctl -t
De même, l'option -S liste tous les hôtes virtuels avec leurs informations essentielles : ports configurés, numéro de ligne de leur définition dans la configuration, etc.
[root@server ~]
# httpd -S
VirtualHost configuration:
127.0.0.1:7080 is a NameVirtualHost
Apache ne démarre pas si le fichier .htaccess n'est pas créé correctement.
Les hôtes virtuels Apache doivent contenir les bonnes définitions pour que les fichiers .htaccess soient pris en compte. Si ces directives manquent, le fichier .htaccess est ignoré et ses définitions ne sont pas chargées. Voici un exemple de définition
</VirtualHost>
<Directory /home/eurovps/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Une fois cela fait, le fichier .htaccess créé dans /home/eurovps/public_html/ sera pris en compte par Apache. Le fichier doit avoir le mode 644 et l'utilisateur du domaine comme propriétaire :
Exemple de création du fichier .htaccess et de ses permissions.
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
Conseils : activez les journaux détaillés pour déboguer (LogLevel debug). Consultez syslog et dmesg pour tout indice sur l'arrêt d'un processus, et vérifiez la mémoire libre et l'espace disque disponible sur le serveur.
Extrait de la FAQ EuroVPS.
Plus dans la catégorie « Guides »Votre prochain partenaire d'infrastructure
Encore
une question ?
Dites-nous ce que vous cherchez à faire. Un ingénieur lira votre message et vous répondra.
+357 222 32280
Commençons par votre environnement.
Un peu de contexte nous aide à démarrer la bonne conversation.
