Aller au contenu
EuroVPSEuroVPS

Comment dépanner les problèmes courants d'Apache

FAQ EuroVPS

Mis à jour le 4 min de lecture

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
Un ingénieur EuroVPS transportant un nœud serveur dans la salle du datacenter
Une conversation avec les personnes qui prendront soin de votre infrastructure.

Commençons par votre environnement.

Un peu de contexte nous aide à démarrer la bonne conversation.

Nous utiliserons vos coordonnées pour répondre à votre demande. Politique de confidentialité