Apacheの起動・停止・再起動・状態確認
Apacheの起動・停止・再起動・状態確認について解説します。
Apacheの状態確認
Apacheの状態確認は、systemctlコマンドの「status」を使って行います。
sudo systemctl status apache2
起動している場合
起動している場合は、以下のように表示されます。
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d mqapache2-systemd.conf Active: active (running) since Tue 2020-05-19 08:59:09 JST; 9s ago Process: 120415 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 120947 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 120968 (apache2) Tasks: 55 (limit: 9479) CGroup: /system.slice/apache2.service tq120968 /usr/sbin/apache2 -k start tq120971 /usr/sbin/apache2 -k start mq120972 /usr/sbin/apache2 -k start
停止している場合
停止している場合は、以下のように表示されます。
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: Drop-In: /lib/systemd/system/apache2.service.d mqapache2-systemd.conf Active: inactive (dead) since Tue 2020-05-19 08:52:07 JST; 3min 51s ago Process: 120415 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCE Main PID: 104579 (code=exited, status=0/SUCCESS)
Apacheの起動
Apacheの起動は、systemctlコマンドの「start」を使って行います。sudoコマンドを使って、root権限で実行します。
sudo systemctl start apache2
起動が成功しても、成功したというメッセージは返ってきません。状態確認を行ってください。
Apacheの停止
Apacheの停止は、systemctlコマンドの「stop」を使って行います。sudoコマンドを使って、root権限で実行します。
sudo systemctl stop apache2
停止が成功しても、成功したというメッセージは何も返ってきません。状態確認を行ってください。
Apacheの再起動
Apacheの再起動は、systemctlコマンドの「restart」を使って行います。sudoコマンドを使って、root権限で実行します。
sudo systemctl restart apache2
restartは単に、stopコマンドを実行して、startコマンドを実行します。HTTPクライアントからの処理を切断してしまうので、通常はreloadコマンドを使用しましょう
再起動が成功しても、成功したというメッセージは返ってきません。状態確認を行ってください。
Apacheのグレースフル(graceful)再起動
Apacheのグレースフル(graceful)再起動は、systemctlコマンドの「reload」を使って行います。sudoコマンドを使って、root権限で実行します。
sudo systemctl reload apache2
グレイスフル(graceful, 優美な)再起動と呼ばれている再起動は、Apacheに接続しているHTTPクライアントに対して、正しくHTTPレスポンスを返しつつ、Apacheを再起動できる技術を使った再起動です。すべてのHTTPクライアントの処理を正しく処理できるので、通常はこちらの再起動を使いましょう。
再起動が成功しても、成功したというメッセージは返ってきません。状態確認を行ってください。
Apacheの起動・停止のログを見るには
Apacheなどのサーバーは、systemdというプログラムによって集中的に管理されています。
systemdのログにApacheの起動・停止ログが出力されています。
systemdのログを見るにはjournalctlコマンドを使います。「-u」オプションでユニット「apache2」を指定します。sudoで実行しないとApacheのログが見れないので注意してください。ログの最後の部分だけ見たい場合は「-r」オプションを組み合わせます。
sudo journalctl -r -u apache2
ログのサンプルです。
- Logs begin at Mon 2020-06-01 15:51:16 JST, end at Thu 2020-07-23 14:37:14 JST. -- Jul 22 13:34:22 shinshina-development-app-00000001 systemd[1]: apache2.service: Failed with result 'exit-code'. Jul 22 13:34:22 shinshina-development-app-00000001 systemd[1]: apache2.service: Main process exited, code=exited, status=1/FAILURE Jul 22 13:24:35 shinshina-development-app-00000001 systemd[1]: Started The Apache HTTP Server. Jul 22 13:24:35 shinshina-development-app-00000001 apachectl[1299]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.0.0.4. Set the 'ServerName' direct Jul 22 13:24:33 shinshina-development-app-00000001 systemd[1]: Starting The Apache HTTP Server... -- Reboot -- Jul 22 13:13:48 shinshina-development-app-00000001 systemd[1]: Stopped The Apache HTTP Server. Jul 22 13:13:47 shinshina-development-app-00000001 systemd[1]: Stopping The Apache HTTP Server... Jul 22 06:25:03 shinshina-development-app-00000001 systemd[1]: Reloaded The Apache HTTP Server. Jul 22 06:25:03 shinshina-development-app-00000001 systemd[1]: Reloading The Apache HTTP Server.
再起動前にApacheの設定ファイルが正しいか確認する
Apacheの再起動(グレースフル再起動)を行う前には「apachectl -t」で、Apacheの設定ファイルが正しいことを確認します。これを忘れると、再起動に失敗して、Webシステムが止まることがあります。よくやりがちなので、注意します。
# Apacheの設定ファイルの試験 apachectl -t
Apacheのsystemdの設定ファイルを見るには
Apacheのsystemdの設定ファイルは「systemctl status apache2」で見れます。
設定ファイルをcatコマンドで見てみましょう。
cat /lib/systemd/system/apache2.service
start、stop、reloadのコマンド定義などが確認できます。
[Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking Environment=APACHE_STARTED_BY_SYSTEMD=true ExecStart=/usr/sbin/apachectl start ExecStop=/usr/sbin/apachectl stop ExecReload=/usr/sbin/apachectl graceful PrivateTmp=true Restart=on-abort [Install] WantedBy=multi-user.target
Apacheの他の情報
Apacheをインストールするには
Apacheのインストールについては、以下の記事で解説しています。
apache2のインストール - WebサーバーであるApacheのバージョン2系
Apacheの設定ファイル
Apacheの設定ファイルについては、別の記事で解説します。