06.CentOS6.4でWebサーバー構築(Apache2.2.24の設定)|httpd.conf編集手順と自動起動・現代版RHEL9対応表

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)CentOS6.4でサーバー構築, Linuxサーバー構築 > 06.CentOS6.4でWebサーバー構築(Apache2.2.24の設定)|httpd.conf編集手順と自動起動・現代版RHEL9対応表

この記事のポイント

CentOS6.4 上に Apache2.2.24 をソースインストールした後の httpd.conf 設定手順
・ServerAdmin / DocumentRoot / ServerName / Directory / CGI の5箇所を編集する
・apachectl configtest で構文確認 → restart → chkconfig で自動起動の流れ
・古いOS環境を残しつつ、現代の RHEL 9 / Rocky Linux 9 系で同じ操作を行う場合の対応表も掲載

CentOS6.4 での Webサーバー構築 の続編として、Apache2.2.24 のインストールが完了したら、続いて 設定 を行います。

本ページの内容を実施するには、下記ページの手順を実行し、事前にCentOS6.4の環境を構築する必要があります。
01.CentOS6.4ファイルのダウンロード
02.CentOS6.4のインストールCD作成(burnatonceでライティング)
03.CentOS6.4のインストール
04.CentOS6.4で端末(ターミナル)を起動する(GUI)
05.CentOS6.4でWebサーバー構築(Apache2.2のインストール)

この記事では Apache2.2.24 の httpd.conf を順番に編集していき、最終的に index.html が表示されるところまで進めます。

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

CentOS6.4でApache2.2.24の設定を始める前の確認

本記事は、CentOS6.4 上に Apache2.2.24 のソースをビルドして /usr/local/apache2 配下にインストールした直後の状態を前提としています。
yum パッケージから入れる httpd(/etc/httpd 配下)とはパスもサービス名も異なるので注意してください。

これから編集する httpd.conf は /usr/local/apache2/conf/httpd.conf です。
編集前に念のためバックアップを取っておきましょう。

[root@Tiger ~]# cp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.bak

CentOS6系はすでにメーカーサポートが終了したOSですが、当時の実機で学習を進めている方や、レガシー環境を引き継いで運用しているケースを想定して、当時の手順をそのまま掲載しています。
現代の RHEL 9 / Rocky Linux 9 系で同じ操作を行う場合は、記事後半の早見表を参照してください。

httpd.confの設定変更箇所(Apache2.2.24)

1. Apacheの設定を変更します。設定を行うには httpd.conf ファイルを編集します。vi エディタで httpd.conf を開きます。

[root@Tiger httpd-2.2.24]# vi /usr/local/apache2/conf/httpd.conf

編集する箇所は下記を参照してください。

1. ServerAdmin(サーバー管理者メールアドレスの設定)

サーバー管理者のメールアドレスを設定します(88行目あたり)。
:set number」で行番号を表示できます。
/ServerAdmin」で ServerAdmin を文字列検索できます。

# ServerAdmin you@example.com ServerAdmin あなたのメールアドレス

「ServerAdmin you@example.com」の行頭に「#」を入力しコメント化して、下の行に「ServerAdmin あなたのメールアドレス」を追加します。

私の場合は、下記のようになります。

#ServerAdmin you@example.com ServerAdmin pakira@linuxmaster.jp

このメールアドレスを設定することで、Webサーバーに何らかの異常が発生した場合、問い合わせ先となるメールアドレスを表示します。また、URLを設定することも可能です。

2. DocumentRoot(ドキュメントルートの変更)

ドキュメントルートを変更します(105行目あたり)。

#DocumentRoot "/usr/local/apache/htdocs" DocumentRoot "/home/ユーザー名/www"

「DocumentRoot "/usr/local/apache/htdocs"」の行頭に「#」を入力しコメント化して、下の行に「DocumentRoot "/home/ユーザー名/www"」を追加します。
※ユーザー名は 03.CentOS6.4のインストール の26で設定した一般ユーザー名を設定してください。
私の場合は、「DocumentRoot "/home/pakira/www"」となります。

ドキュメントルートとは、Webサイトを表示させるHTMLファイルをサーバーのどのディレクトリにするのかを設定します。
ここで設定されたディレクトリがインターネットに公開され、Webサイトが表示されます。

3. ServerNameの変更

ServerName を変更します(98行目あたり)。

# ServerName www.example.com:80 ServerName あなたのサーバーホスト名

「ServerName www.example.com」の下に「ServerName あなたのサーバーホスト名」を追加してください。ホスト名は、03.CentOS6.4のインストール の14で設定したホスト名を設定してください。私の場合は、「ServerName Tiger」となります。

4. ScriptAlias(CGIの設定)

CGIの設定を行います(254行目あたり)。

#ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" ScriptAlias /cgi-bin/ "/home/ユーザー名/www/cgi-bin/"

「ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"」の行頭に「#」を入力しコメント化して、下の行に「ScriptAlias /cgi-bin/ "/home/ユーザー名/www/cgi-bin/"」を追加します。

私の場合は、

#ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" ScriptAlias /cgi-bin/ "/home/pakira/www/cgi-bin/"

となります。

5. Directoryディレクティブの設定

Directoryディレクティブを設定します(134行目あたり)。

#<Directory "/usr/local/apache2/htdocs"> <Directory "/home">

「Directory "/usr/local/apache2/htdocs">」の行頭に「#」を入力しコメント化して、下の行に「」を追加します。

ここまで設定したらviエディタを「:wq」で保存終了します。

ドキュメントルート用ディレクトリと権限の設定

2. ウェブページをアップロードするためのディレクトリを作成します。

[root@Tiger httpd-2.2.24]# mkdir /home/ユーザー名/www [root@Tiger httpd-2.2.24]# chmod 705 /home/ユーザー名 [root@Tiger httpd-2.2.24]# chown ユーザー名:ユーザー名 /home/ユーザー名/www

私の場合、「mkdir /home/ユーザー名/www」の箇所は「mkdir /home/pakira/www」となり、「chmod 705 /home/ユーザー名」の箇所は、「chmod 705 /home/pakira」、「chown ユーザー名:ユーザー名 /home/ユーザー名/www」の箇所は、「chown pakira:pakira /home/pakira/www」になります。
ユーザー名はあなたの環境に合わせて変更してください。

chmod 705 は所有者に rwx、その他に r-x を与える権限です。Apache(nobody または apache ユーザー)から /home/ユーザー名 配下のファイルを読み出せるようにするための必須の権限設定です。

apachectl configtest と Apacheの再起動

3. httpd.conf ファイルに文法エラーなどがないかチェックします。

[root@Tiger httpd-2.2.24]# /usr/local/apache2/bin/apachectl configtest Syntax OK

「Syntax OK」と表示されれば、問題ありません。エラーがある場合エラー箇所が表示されます。

4. Apacheを再起動します。

[root@Tiger httpd-2.2.24]# /usr/local/apache2/bin/apachectl restart

参考)
Apacheの起動・停止コマンド

# Apacheの起動 /usr/local/apache2/bin/apachectl start # Apacheの停止 /usr/local/apache2/bin/apachectl stop # Apacheの再起動 /usr/local/apache2/bin/apachectl restart

動作確認とindex.htmlの配置

5. 再度設定が正しく出来ているか確認するために検証用のHTMLファイルをダウンロードします。
※ /home/pakira/www の pakira の箇所はあなたのユーザー名に変更してください。

[root@Tiger httpd-2.2.24]# cd /home/pakira/www [root@Tiger www]# wget https://www.linuxmaster.jp/report/html/index.html --2013-03-20 18:54:43-- https://www.linuxmaster.jp/report/html/index.html www.linuxmaster.jp をDNSに問いあわせています... 202.172.25.34 www.linuxmaster.jp|202.172.25.34|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 201 [text/html] `index.html' に保存中 100%[==================================================>] 201 --.-K/s 時間 0s 2013-03-20 18:54:43 (17.3 MB/s) - `index.html' へ保存完了 [201/201] [root@Tiger www]#

6. 05.CentOS6.4でWebサーバー構築(Apache2.2のインストール) の16と同じ手順でページの確認をします。
centos64_apache2224_inst_012.jpg
上図のように画面が表示されれば設定が成功したことになります。
もし文字化けする場合は「表示」-「エンコード」から文字コードを変更してください。
今回の設定では、ドキュメントルート「/home/pakira/www/」に保存されたindex.htmlファイルが「http://192.168.0.36/」アドレスで表示されています。

Apacheの自動起動設定(chkconfig)

7. Apacheの自動起動設定
サーバーを起動したらApacheも自動で起動するようにchkconfigに登録します。

[root@Tiger www]# cd /usr/local/src/ [root@Tiger src]# wget https://www.linuxmaster.jp/report/tools/httpd_chkconfig_2.2.24.txt --2013-03-20 18:57:59-- https://www.linuxmaster.jp/report/tools/httpd_chkconfig_2.2.24.txt www.linuxmaster.jp をDNSに問いあわせています... 202.172.25.34 www.linuxmaster.jp|202.172.25.34|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 3296 (3.2K) [text/plain] `httpd_chkconfig_2.2.24.txt' に保存中 100%[================================================>] 3,296 --.-K/s 時間 0s 2013-03-20 18:57:59 (34.5 MB/s) - `httpd_chkconfig_2.2.24.txt' へ保存完了 [3296/3296] [root@Tiger src]# mv /etc/init.d/httpd /etc/init.d/httpd_bak [root@Tiger src]# mv httpd_chkconfig_2.2.24.txt /etc/init.d/httpd [root@Tiger src]# chmod 755 /etc/init.d/httpd [root@Tiger src]# chkconfig --level 345 httpd on [root@Tiger src]# chkconfig --list httpd httpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off [root@Tiger src]#

上記設定を行うことで、次回Linuxを起動すると、Apacheが自動で起動します。

CentOS6.4世代 vs RHEL 9 / Rocky Linux 9世代 設定対応 早見表

本記事はCentOS6.4Apache2.2.24のソースビルド構成を対象にしています。現代の環境で同じことをやりたい場合、ディレクトリ・サービス管理コマンドが大きく変わっていますので、対応表を掲載します。
項目 CentOS 6.4 + Apache2.2.24(本記事) RHEL 9 / Rocky Linux 9(現代)
パッケージ取得 ソースビルド sudo dnf install httpd
設定ファイルパス /usr/local/apache2/conf/httpd.conf /etc/httpd/conf/httpd.conf
追加設定の置き場所 httpd.conf直書き /etc/httpd/conf.d/*.conf
構文チェック /usr/local/apache2/bin/apachectl configtest httpd -t または apachectl configtest
起動・停止・再起動 apachectl start/stop/restart systemctl start/stop/restart httpd
自動起動設定 chkconfig --level 345 httpd on systemctl enable httpd
状態確認 chkconfig --list httpd systemctl status httpd
ファイアウォール iptables firewall-cmd --add-service=http --permanent
SELinux DocumentRoot変更 SELinux無効化が多かった semanage fcontext / restorecon が基本
CentOS6.4 環境の操作を学習目的で残しつつ、現代の現場では右列のRHEL 9 / Rocky Linux 9世代に読み替えて運用してください。

「ページが表示されない」「403 Forbidden」が出た時の対処法

Apache2.2.24設定変更後にうまく表示されない場合、原因は次のいずれかに該当することがほとんどです。

・httpd プロセスがちゃんと再起動されていない(apachectl restart の戻り値を確認する)
・/home/ユーザー名 ディレクトリの実行権限(x)が他人にない(chmod 705 を確認する)
・SELinux が enforcing で /home 配下を許可していない(setenforce 0 で切り分け)
・iptables(CentOS 6)または firewalld(CentOS 7 以降)で80番ポートが閉じている
・index.html が DocumentRoot 配下に存在しない、または DirectoryIndex の設定と合っていない

切り分けは「ローカルから curl http://localhost/」→「LAN内別ホストから curl http://192.168.x.x/」の順に動作確認すると、サーバー側の設定問題か、ネットワーク・FW側の問題かを切り分けやすくなります。

本記事のまとめ

CentOS6.4Apache2.2.24 をインストールしたあとの httpd.conf の設定5箇所(ServerAdmin / DocumentRoot / ServerName / ScriptAlias / Directory)と、ディレクトリ・権限の準備、apachectl configtest による構文確認、自動起動設定までの一連の流れを、当時の実機の出力例とともに掲載しました。

現代の RHEL 9 / Rocky Linux 9 系で同じ Webサーバー構築 を行う場合は、設定ファイルパスや service 管理コマンドが大きく変わっていますので、後半の早見表で対応する操作に読み替えてください。

無料の Linux Master Magazine では、現代の Apache・Nginx 運用ノウハウや、レガシー環境からの段階的な移行手順なども定期的に配信しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。