CentOS7.2 に Apache2.4 インストールしていく手順です。
環境
・CentOS7.2
・Apache2.4
インストール状況の確認
まずは、インストール状態を確認します。
以下のコマンドにて、現在インストールされているかどうかを含め、Apache の状況を確認していきます。
※yum で PHP をインストールしている場合には、依存関係として Apache がインストールされますので、その場合には、バージョン 2.4 がインストールされているかどうか確認を行います。
$ httpd -v
# 既にインストールされている場合には、バージョン情報が表示されます。
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 5 2018 01:47:09
# インストールされていない場合には、コマンドが見つからないエラーが表示されます。
-bash: httpd: コマンドが見つかりません
もしくは、
$ yum list installed | grep httpd
Apache インストール
インストールされていない場合には、以下のコマンドにてインストールを行います。
$ sudo yum -y install httpd
インストールが完了したら、バージョンを確認します。
$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 5 2018 01:47:09
バージョンに問題がなければ、インストールは完了です。
完了したら、自動起動設定を行っていきます。
自動起動設定
サーバー起動時に自動で起動するように以下のコマンドにて設定を行います。
$ sudo systemctl enable httpd.service
設定に問題がないか確認を行います。
$ systemctl list-unit-files -t service | grep httpd
httpd.service enabled
enabled と表示されていれば OK です。
なお、自動起動設定を解除する場合には、以下のコマンドで設定を解除します。
$ sudo systemctl disable httpd.service
起動と停止等の各種コマンド
設定ファイルの構文チェック
設定ファイルの内容に誤りがないか構文チェックを行います。
$ httpd -t
もしくは、
$ apachectl configtest
起動
$ sudo systemctl start httpd.service
停止
子プロセス全てを kill します。その後、親プロセス自身が終了します。
$ sudo systemctl stop httpd.service
再起動
stop コマンド後に start コマンドを実行します。
※stop コマンドにて処理中のリクエストは全て停止されますので、稼働中のサービスの場合には、reload オプションを使用することをおすすめします。
$ sudo systemctl restart httpd.service
ステータス確認
現在の起動状況や起動エラーの際には、エラーの簡易的な内容を確認することができます。
$ systemctl status httpd.service
緩やかな再起動
緩やかな再起動となり、子プロセスは現在のリクエストの処理が完了してから終了します。
親プロセスは設定ファイルを再読込し、終了した子プロセスの替わりに新しい子プロセスを起動していきます。
$ sudo systemctl reload httpd.service
※CentOS6 の graceful はこちらの reload オプションになってます。
以下、起動ファイル参照
$ cat /usr/lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
# We want systemd to give httpd some time to finish gracefully, but still want
# it to kill httpd after TimeoutStopSec if something went wrong during the
# graceful stop. Normally, Systemd sends SIGTERM signal right after the
# ExecStop, which would kill httpd. We are sending useless SIGCONT here to give
# httpd time to finish.
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
次回は、Apache のセキュリティ設定をおこなっていきます。
コメント