GNU/Linux >> Linux の 問題 >  >> Linux

Apacheを再起動します

変更を有効にする必要がある場合、またはApacheのリソース使用を通常の範囲に戻す必要がある場合は、Apache®を再起動する必要がある場合があります。ただし、Apacheが再起動に失敗することがあります。この記事では、構成設定を確認し、失敗したときにApacheを再起動する方法を説明します。

:次の手順を使用して構成ファイルに変更を加える前に、既存のファイルをバックアップすることをお勧めします。

構文を確認してください

エラーの原因は、スペルミスまたはドット(。)が適切でない可能性があります。次のコマンドを実行して、構文を確認してください。

    [user@server ~]$ httpd –S

次の出力が表示されます。

    Syntax OK

次の出力例のようなエラーメッセージが表示された場合は、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

Apacheエラーログを確認する

これらのエラーを解決してもApacheが再起動しない場合は、Apacheエラーログを確認してください。 2つのウィンドウを使用すると役立つ場合があります。 1つのウィンドウで、次のコマンドを実行して、エラーログに対してtailコマンドを使用します。

    tail –f /var/log/httpd/error_log

もう一方のウィンドウで、次のコマンドを実行してApacheの再起動を試みます。

    # 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

Apacheの再起動中に最初のウィンドウを見て、ログに生成されているエラーを確認してください。

次の出力に示すように、Apacheが使用しようとしているポートにバインドしている別のサービスがある場合も、Apacheは再起動しない可能性があります。

    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

この出力は、別のサービスがすでにポート80に割り当てられているため、Apacheを開始できないことを示しています。

Apacheが割り当てられているポートを変更するか、このポートに割り当てられている他のサービスがポート80にあるかどうかを確認できます。netstatを実行します。 次の例に示すように、そのポートを使用している他のサービスを識別するコマンド:

    [user@server ~]$ sudo netstat –plnt

出力は次の例のようになります。

    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

この例では、出力はSecure Shell(SSH)がポート80でリッスンしていることを示していますが、そうではないはずです。 SSHの構成ファイルを変更して別のポートでリッスンし、Apacheを再起動することで、この状況を修正できます。

次のエラーも表示される場合があります:

    httpd dead but subsys locked, but pid exists

このエラーは、Apacheが実行されていたが、クラッシュしたことを意味します。 Apacheを起動すると、実行中であることを示すロックファイルが作成されます。ロックファイルは、複数のインスタンスが実行されるのを防ぐのに役立ちます。 Apacheを停止すると、このロックファイルは削除されます。ただし、クラッシュしてもロックファイルは存在しますが、プロセスは存在しません。このエラーが表示された場合は、次のコマンドを実行してロックファイルを削除する必要があります。

    # 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

これらのコマンドを実行すると、未使用のロックファイルが削除され、Apacheが再起動したときに新しいロックファイルを作成できるようになります。


コメントや質問をするには、[フィードバック]タブを使用します。私たちと会話を始めることもできます。


Linux
  1. UbuntuにApacheをインストールするにはどうすればいいですか?

  2. Ubuntu で Nginx を再起動します。

  3. 別のユーザーとして Apache を実行する

  1. Apache mod_rewrite

  2. Apacheでmod_clusterを使用する

  3. Apacheを再起動してhttpd.confの変更を永続的にする方法は?

  1. Apacheを再起動する方法は?

  2. CentOS8にApacheをインストールする

  3. Debian10にApacheをインストールする