GNU/Linux >> Tutoriels Linux >  >> Linux

Redémarrez Apache

Vous devrez peut-être redémarrer Apache® lorsque vous souhaitez que les modifications que vous apportez prennent effet ou lorsque vous devez ramener l'utilisation des ressources d'Apache à une plage normale. Cependant, parfois, Apache ne parvient pas à redémarrer. Cet article vous montre comment vérifier vos paramètres de configuration et redémarrer Apache en cas d'échec.

Remarque :Avant d'utiliser les instructions suivantes et d'apporter des modifications à vos fichiers de configuration, nous vous recommandons de sauvegarder les fichiers existants.

Vérifier la syntaxe

La cause de l'erreur peut simplement être un mot mal orthographié ou un point (.) qui n'est pas à sa place.Exécutez la commande suivante pour vérifier la syntaxe :

    [user@server ~]$ httpd –S

Vous devriez voir le résultat suivant :

    Syntax OK

Si vous recevez un message d'erreur similaire à celui de l'exemple de sortie suivant, vous devez corriger l'erreur avant de tenter de redémarrer Apache :

    Syntax error on line 51 of /etc/httpd/conf/httpd.conf:
    Invalid command 'erverRoot', perhaps misspelled or defined by a module not included in the server configuration

Consulter les journaux d'erreurs Apache

Si vous résolvez ces erreurs et qu'Apache ne redémarre toujours pas, consultez les journaux d'erreurs d'Apache. L'utilisation de deux fenêtres peut être utile. Dans une fenêtre, utilisez la commande tail contre le journal des erreurs en exécutant la commande suivante :

    tail –f /var/log/httpd/error_log

Dans l'autre fenêtre, essayez de redémarrer Apache en exécutant la commande suivante :

    # For RHEL/CentOS 6
    [user@server ~]$ sudo /etc/init.d/httpd restart
    # For Ubuntu 14/Debian 8
    [user@server ~]$ sudo /etc/init.d/apache2 restart
    # For RHEL/CentOS 7+
    [user@server ~]$ sudo systemctl restart httpd
    # For Ubuntu 16+/Debian 9+
    [user@server ~]$ sudo systemctl restart apache2

Regardez la première fenêtre lors du redémarrage d'Apache pour voir les erreurs qui sont générées dans les journaux.

Apache peut également ne pas redémarrer s'il existe un autre service lié au port qu'Apache essaie d'utiliser, comme indiqué dans la sortie suivante :

    Stopping httpd:                                           [FAILED]
    Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 2001:4801:7824:103:9ed:a5a8:3301:d53a for ServerName
    [Wed Sep 10 20:48:11 2014] [warn] NameVirtualHost *:443 has no VirtualHosts
    [Wed Sep 10 20:48:11 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
    (98)Address already in use: make_sock: could not bind to address [::]:80
    (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

Cette sortie montre qu'Apache ne peut pas démarrer car un autre service est déjà affecté au port 80.

Vous pouvez soit modifier le port auquel Apache est affecté, soit vérifier si l'autre service affecté à ce port est censé être sur le port 80. Exécutez le netstat pour identifier l'autre service qui utilise ce port, comme illustré dans l'exemple suivant :

    [user@server ~]$ sudo netstat –plnt

Le résultat doit ressembler à l'exemple suivant :

    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:80                  0.0.0.0:*                   LISTEN     5272/sshd
    tcp       0     0 127.0.0.1:25                0.0.0.0:*                   LISTEN     1581/master
    tcp       0     0 0.0.0.0:3306                0.0.0.0:*                   LISTEN     5835/mysqld
    tcp       0     0 :::80                                       :::*        LISTEN     5272/sshd
    tcp       0     0 ::1:25                                      :::*        LISTEN     1581/master

Dans cet exemple, la sortie montre que Secure Shell (SSH) écoute sur le port 80, ce qui ne devrait pas être le cas. Vous pouvez remédier à cette situation en modifiant le fichier de configuration pour que SSH écoute sur un autre port, puis redémarrez Apache.

Vous pouvez également voir l'erreur suivante :

    httpd dead but subsys locked, but pid exists

Cette erreur signifie qu'Apache était en cours d'exécution, mais s'est écrasé. Lorsque vous démarrez Apache, il crée un fichier de verrouillage pour indiquer qu'il est en cours d'exécution. Le fichier de verrouillage permet d'empêcher l'exécution de plusieurs instances. Lorsque vous arrêtez Apache, ce fichier de verrouillage est supprimé. Lorsqu'il se bloque, cependant, le fichier de verrouillage existe toujours, mais pas le processus. Si vous voyez cette erreur, vous devez supprimer le fichier de verrouillage en exécutant les commandes suivantes :

    # For RHEL/CentOS based distributions
    [user@server ~]$ sudo rm /var/lock/subsys/httpd
    # For Ubuntu/Debian based distributions
    [user@server ~]$ sudo rm /var/lock/subsys/apache2

    # For RHEL/CentOS 6
    [user@server ~]$ sudo /etc/init.d/httpd restart
    # For Ubuntu 14/Debian 8
    [user@server ~]$ sudo /etc/init.d/apache2 restart
    # For RHEL/CentOS 7+
    [user@server ~]$ sudo systemctl restart httpd
    # For Ubuntu 16+/Debian 9+
    [user@server ~]$ sudo systemctl restart apache2

L'exécution de ces commandes supprime le fichier de verrouillage inutilisé afin qu'Apache puisse en créer un nouveau au redémarrage.


Utilisez l'onglet Commentaires pour faire des commentaires ou poser des questions. Vous pouvez également démarrer une conversation avec nous.


Linux
  1. Apache mod_rewrite

  2. Utilisation de mod_cluster dans Apache

  3. Comment redémarrer Apache ?

  4. Comment redémarrer Apache pour rendre permanents les changements de httpd.conf ?

  5. Comment installer Apache sur Ubuntu ?

Comment redémarrer Apache sur Ubuntu 20.04 Focal Fossa

Commande de redémarrage Linux (redémarrer)

Comment démarrer, arrêter ou redémarrer Apache

Serveur Web Apache

Comment installer Apache sur Ubuntu 20.04

Comment redémarrer le réseau sur Ubuntu 22.04