前回は、Apacheの基本的なインストールから立ち上げまでを紹介してきました。今後、起動中のサーバで設定変更をしたときなどどのようにしてApacheを再起動すればよいのでしょうか?
今回は、Apacheの起動scriptの使い方を中心に説明していきます。
Apacheの起動スクリプト
前回の記事で少し使用しましたが、Apacheには起動用スクリプトが同梱されています。
以下がApacheの起動用スクリプト「apachectl」の内容です。Usageが表示されるので、実際に実行してみます。
さて、いろいろとオプションがありますが、まず確実に把握しておきたいのが起動・停止・再起動に使用をするオプションです。
起動・停止などは上記のスクリプトに引数を渡して使用をするようにします。下記の4つは確実に覚えておくようにしましょう。
※ {APACHE_HOME}は適宜ご使用している環境に合わせて読み替えてください。
Apacheの起動と停止
それでは、/usr/local/apache2/logs/error_logを見ながらstart・stopをしてみます。
ここでは、2つのターミナルを起動して、片方でtailをしながら実行をします。便宜上、それぞれターミナル1、ターミナル2という名前で説明します。まず、ターミナル1でApacheの起動をしましょう。ターミナル2がtail側です。
起動時のメッセージが表示されましたね。これで正常に起動しています。
それではApacheを停止します。
これでApacheが正常に停止されました。psでApacheのプロセスがなくなっているかも確認をしてください。
Apacheの再起動
さて、次は再起動について説明をしていきます。
上記でも説明をしましたが、Apacheには再起動の方法が大きく分けて2種類あります。
それぞれ長所・短所があるので把握をしておきましょう。
- restart
- ユーザからリクエストを受けているプロセスも含め、すべてをkill(停止)してから起動をさせます。そのため、ユーザからの接続が遮断される可能性があります。
- graceful
- ユーザからのリクエストを受けた後、レスポンスまでがすべて完了してから、再起動します。ユーザからの接続が強制的に遮断されることはありません。ただし、一部の設定が反映されないことがあります。
では、こちらも2つのターミナルを使ってerror_logを確認してみます。まずはrestartからです。
正常にrestartが実施されました。
続いて、gracefulを実行します。
このメッセージが表示されれば正常にgracefulが実行されています。
このように、Apacheのオペレーション時には、error_logを見ながら実行をするようにしてください。その際、自分の期待しているメッセージがerror_logに出るかをしっかりと確認するようにしましょう。
トラブルシューティング
Apacheを起動した際、下記のようなエラーメッセージが表示されることがあります。
この場合はどのように対処したらよいのでしょうか?
このメッセージは、Apacheが使用しようとしたportが使えなかった場合に帰ってくるメッセージです。この場合では、すでに80番が他のプログラムで使用しているというケースが想定されます。このときは、まずlsofというコマンドを使用して対象となるプログラムを特定します。
これで80番portを使用しているプロセスのPIDが特定できましたね。
このように特定のportを使用しているプロセスを調べるときは、lsofコマンドが便利です。
まとめ
今回はおもにApacheの起動・停止・再起動の方法について説明をしてきました。
実際に今回説明をした4つのコマンドはどれも多用することになりますますので、しっかりと覚えるようにしてください。
さて、次回からはhttpd.confの記述方法に入っていく予定です。