この記事のポイント
・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の環境を構築する必要があります。
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 が表示されるところまで進めます。
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
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
現代の 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 pakira@linuxmaster.jp
2. DocumentRoot(ドキュメントルートの変更)
ドキュメントルートを変更します(105行目あたり)。#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 あなたのサーバーホスト名
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/pakira/www/cgi-bin/"
5. Directoryディレクティブの設定
Directoryディレクティブを設定します(134行目あたり)。#<Directory "/usr/local/apache2/htdocs"> <Directory "/home">
ここまで設定したら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
ユーザー名はあなたの環境に合わせて変更してください。
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
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]#
上図のように画面が表示されれば設定が成功したことになります。
もし文字化けする場合は「表示」-「エンコード」から文字コードを変更してください。
今回の設定では、ドキュメントルート「/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]#
CentOS6.4世代 vs RHEL 9 / Rocky Linux 9世代 設定対応 早見表
本記事はCentOS6.4+Apache2.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 が基本 |
「ページが表示されない」「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.4 に Apache2.2.24 をインストールしたあとの httpd.conf の設定5箇所(ServerAdmin / DocumentRoot / ServerName / ScriptAlias / Directory)と、ディレクトリ・権限の準備、apachectl configtest による構文確認、自動起動設定までの一連の流れを、当時の実機の出力例とともに掲載しました。現代の RHEL 9 / Rocky Linux 9 系で同じ Webサーバー構築 を行う場合は、設定ファイルパスや service 管理コマンドが大きく変わっていますので、後半の早見表で対応する操作に読み替えてください。
無料の Linux Master Magazine では、現代の Apache・Nginx 運用ノウハウや、レガシー環境からの段階的な移行手順なども定期的に配信しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:01.CentOS6.5のダウンロード
- 前のページへ:04.CentOS6.4で端末(ターミナル)を起動する(GUI)
- この記事の属するカテゴリ:CentOS6.4でサーバー構築・Linuxサーバー構築へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます