GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Starten Sie Apache neu

Möglicherweise müssen Sie Apache® neu starten, wenn Sie möchten, dass Änderungen wirksam werden, oder wenn Sie die Ressourcennutzung von Apache wieder auf einen normalen Bereich bringen müssen. Manchmal kann Apache jedoch nicht neu gestartet werden. Dieser Artikel zeigt Ihnen, wie Sie Ihre Konfigurationseinstellungen überprüfen und Apache neu starten, wenn es fehlschlägt.

Hinweis :Bevor Sie die folgenden Anweisungen verwenden und Änderungen an Ihren Konfigurationsdateien vornehmen, empfehlen wir Ihnen, die vorhandenen Dateien zu sichern.

Überprüfen Sie die Syntax

Die Ursache des Fehlers kann einfach ein falsch geschriebenes Wort oder ein falscher Punkt (.) sein. Führen Sie den folgenden Befehl aus, um die Syntax zu überprüfen:

    [user@server ~]$ httpd –S

Sie sollten die folgende Ausgabe sehen:

    Syntax OK

Wenn Sie eine ähnliche Fehlermeldung wie in der folgenden Beispielausgabe erhalten, müssen Sie den Fehler beheben, bevor Sie versuchen, Apache neu zu starten:

    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

Überprüfen Sie die Apache-Fehlerprotokolle

Wenn Sie diese Fehler beheben und Apache immer noch nicht neu startet, überprüfen Sie die Apache-Fehlerprotokolle. Die Verwendung von zwei Fenstern kann hilfreich sein. Verwenden Sie in einem Fenster den Befehl tail für das Fehlerprotokoll, indem Sie den folgenden Befehl ausführen:

    tail –f /var/log/httpd/error_log

Versuchen Sie im anderen Fenster, Apache neu zu starten, indem Sie den folgenden Befehl ausführen:

    # 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

Beobachten Sie das erste Fenster, während Sie Apache neu starten, um alle Fehler zu sehen, die in den Protokollen generiert werden.

Apache wird möglicherweise auch nicht neu gestartet, wenn ein anderer Dienst an den Port bindet, den Apache zu verwenden versucht, wie in der folgenden Ausgabe gezeigt:

    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

Diese Ausgabe zeigt, dass Apache nicht gestartet werden kann, da Port 80 bereits ein anderer Dienst zugewiesen ist.

Sie können entweder den Port ändern, dem Apache zugewiesen ist, oder prüfen, ob der andere Dienst, der diesem Port zugewiesen ist, auf Port 80 liegen soll. Führen Sie netstat aus Befehl, um den anderen Dienst zu identifizieren, der diesen Port verwendet, wie im folgenden Beispiel gezeigt:

    [user@server ~]$ sudo netstat –plnt

Die Ausgabe sollte ähnlich wie im folgenden Beispiel aussehen:

    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

In diesem Beispiel zeigt die Ausgabe, dass Secure Shell (SSH) auf Port 80 lauscht, was nicht der Fall sein sollte. Sie können diese Situation beheben, indem Sie die Konfigurationsdatei für SSH so ändern, dass sie auf einem anderen Port lauscht, und dann Apache neu starten.

Möglicherweise wird auch der folgende Fehler angezeigt:

    httpd dead but subsys locked, but pid exists

Dieser Fehler bedeutet, dass Apache ausgeführt wurde, aber abgestürzt ist. Wenn Sie Apache starten, erstellt es eine Sperrdatei, um anzuzeigen, dass es ausgeführt wird. Die Sperrdatei verhindert, dass mehrere Instanzen ausgeführt werden. Wenn Sie Apache stoppen, wird diese Sperrdatei entfernt. Wenn es jedoch abstürzt, existiert die Sperrdatei immer noch, aber der Prozess nicht. Wenn Sie diesen Fehler sehen, müssen Sie die Sperrdatei entfernen, indem Sie die folgenden Befehle ausführen:

    # 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

Wenn Sie diese Befehle ausführen, wird die unbenutzte Sperrdatei entfernt, sodass Apache beim Neustart eine neue erstellen kann.


Verwenden Sie die Registerkarte „Feedback“, um Kommentare abzugeben oder Fragen zu stellen. Sie können auch ein Gespräch mit uns beginnen.


Linux
  1. Wie starte ich Apache neu, um httpd.conf-Änderungen dauerhaft zu machen?

  2. Installieren Sie Apache unter CentOS 8

  3. Installieren Sie Apache unter Debian 10

  4. Starten Sie Nginx in Ubuntu neu

  5. Ausführen von Apache als ein anderer Benutzer

So starten Sie Apache unter Ubuntu 20.04 Focal Fossa neu

Linux-Neustart (Neustart)-Befehl

So starten, stoppen oder starten Sie Apache neu

Apache-Webserver

So installieren Sie Apache unter Ubuntu 20.04

So starten Sie das Netzwerk unter Ubuntu 22.04 neu