サーバリテラシ2006 - 第4回 Apacheインストール
Apache インストール
Section titled “Apache インストール”ソースファイルの用意
Section titled “ソースファイルの用意”Apache のソースファイルを保存するディレクトリを作成します。今回は環境を統一するために 「/usr/local/src/」 ディレクトリ以下に保存します。
root ユーザに変更します。
$ su -ソースファイルを保存するディレクトリを作成します。
# mkdir /usr/local/src/httpd作成したディレクトリに移動します。
# cd /usr/local/src/httpdソースファイルのダウンロードを行います。本家サイトに記載されているミラーサーバからでは時間がかかる場合があるため、学内サーバである storage サーバからソースファイルをダウンロードします。本家サイトの URL は http://www.apache.org/ です。storage サーバは学外から繋ぐ事が出来ないので注意してください。
# wget http://storage.cis.k.hosei.ac.jp/pub/apache/httpd/httpd-2.2.3.tar.gzダウンロードしたファイルを解凍します。
# tar zxf httpd-2.2.3.tar.gz# chown -R root: httpd-*::chown コマンドはファイル/ディレクトリの所有ユーザ/グループを変更するコマンドです。
解凍したディレクトリに移動します。
# cd httpd-2.2.3コンパイルとインストール
Section titled “コンパイルとインストール”Apache を動作させるユーザとグループを作成します。
# groupadd -g 300 httpd# useradd -g httpd -u 300 -c "Apache Daemon User" httpd::-g はグループIDの指定、-u はユーザIDの指定、-c はコメントを指定します。
コンパイルとインストールを開始します。コンパイルオプションの説明は、記事の末尾に講義外の資料として記載されています。コンパイルの際は今回は用意しましたが、—helpを使用してどのようなオプションがあるのか理解してから行ってください。
# ./configure --help"./configure" \"--prefix=/usr/local/httpd" \"--enable-userdir" \"--enable-deflate" \"--enable-so" \"--enable-ssl" \"--enable-suexec" \"--with-mpm=prefork" \"--with-ssl=/usr" \"--with-suexec-bin=/usr/local/httpd/bin/suexec" \"--with-suexec-caller=httpd" \"--with-suexec-userdir=public_html" \"--with-suexec-docroot=/home" \"--with-suexec-logfile=/var/log/httpd/suexec_log"# make# make installApacheの設定
Section titled “Apacheの設定”今回は環境を統一するために 「/etc/」 ディレクトリ以下に設定ファイルを保存します。設定ファイルを置くディレクトリを作成します。
# mkdir /etc/httpd作成したら、設定ファイルを適切な位置に配置し シンボリックリンクを作成します。
# mv /usr/local/httpd/conf /etc/httpd/# ln -s /etc/httpd/conf /usr/local/httpd/conf設定ファイルを編集します。
# vi /etc/httpd/conf/httpd.conf:Apacheを動作させるユーザ:
User daemon ↓ User httpd
:Apacheを動作させるグループ:
Group daemon ↓ Group httpd
:管理者のメールアドレス:
ServerAdmin you@example.com ↓ ServerAdmin xxx@k.hosei.ac.jp
- xxxは、各自の学籍番号に変更してください。
:サーバのIPアドレスと利用するポート:
#ServerName www.example.com:80 ↓ ServerName 10.0.10.1xx:80
-
xxは、各自のマシン番号に変更してください。
-
エラーログは通常「/var/log」ディレクトリ以下に保存するので、そのように変更します。
:エラーログの保管位置:
ErrorLog logs/error_log ↓ ErrorLog /var/log/httpd/error_log
:アクセスログの保管位置:
CustomLog logs/access_log common ↓ CustomLog /var/log/httpd/access_log common
:一般ユーザディレクトリの拡張設定を読み込む:
#Include conf/extra/httpd-userdir.conf ↓ Include conf/extra/httpd-userdir.conf
今回は環境を統一するために 「/etc/init.d/」 ディレクトリ以下に起動スクリプトを保存します。起動スクリプトを 「/etc/init.d/httpd」 にコピーします。
# cp ./build/rpm/httpd.init /etc/init.d/httpd起動ファイルを書き換えます。
# vi /etc/init.d/httpdhttpd=${HTTPD-/usr/sbin/httpd} は2箇所あります。コメントアウトされていない側なので、注意して下さい。
apachectl=/usr/sbin/apachectl ↓ apachectl=/usr/local/httpd/bin/apachectl
httpd=${HTTPD-/usr/sbin/httpd} ↓ httpd=${HTTPD-/usr/local/httpd/bin/httpd}
今回は環境を統一するために 「/var/log/」 ディレクトリ以下に、ログファイルを保存場所します。ログファイルを置くディレクトリを作成します。
# mkdir /var/log/httpd# chmod 700 /var/log/httpd# chown httpd: /var/log/httpdhttpd の起動
Section titled “httpd の起動”Apache のデーモンである httpd を起動します。
# /etc/init.d/httpd start起動時に自動起動するようにします。
# chkconfig --add httpd# chkconfig --level 345 httpd onランレベルの3,4,5がオンになっているか確認してください。
# chkconfig --list | grep httpd3.4.5がオンになると次のように表示されます。
httpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
第3回を参考にして、PuTTYで源ポート10080を使ってポート80番をフォワーディングしてください。httpd が動いているか確認します、一般ユーザ権限に戻ってください。
# exithttp://localhost:10080/ にブラウザでアクセスして下さい。動作している場合
It Works! と表示されます。次はユーザ領域へのアクセスの動作確認です、ファイルを置くディレクトリを作成します。
$ mkdir /home/ユーザ名/public_html作成したらテスト用のインデックスファイルを作成します。
$ vi /home/ユーザ名/public_html/index.html<html><body>test!</body></html>Escキーを押してから
:wqと入力し、保存します。ディレクトリとファイルのアクセス許可が正しく設定されていないと表示することができません、パーミッションの変更をします。root ユーザで行ってください。
$ su -# chmod 750 ~ユーザ名# chgrp httpd ~ユーザ名http://localhost:10080/~ユーザ名/ にアクセスして
test! と表示されるか確認して下さい。
トラブルシューティング
Section titled “トラブルシューティング”今回の操作で一般的に起こるエラーの対策を記載します。
404 NotFound
Section titled “404 NotFound”httpd.conf の Include conf/extra/httpd-userdir.conf の指定が間違っている可能性があります。
403 Forbidden
Section titled “403 Forbidden”許可のないファイルにアクセスしています。今回の設定では、/var/log/httpd/error_log にエラーログが残ります。正しくパーミッションが設定されているか確認して下さい。また、確認する際、root ユーザでなければエラーログを見ることが出来ないので注意してください。
コンパイルオプションの詳細(講義外)
Section titled “コンパイルオプションの詳細(講義外)”| 項目 | 内容 |
|---|---|
| —prefix=/usr/local/httpd | 指定したディレクトリにインストールする |
| —enable-userdir | ユーザ領域の利用を可能にする |
| —enable-deflate | deflate変換を有効にする |
| —enable-so | モジュールを動的に読み込む |
| —enable-ssl | SSL接続を有効にする |
| —enable-suexec | CGIを一般ユーザ権限で動かす |
| —with-mpm=prefork | 他(主にサードパティ)のモジュールとの競合を防ぐ |
| —with-ssl=/usr | SSLの保存場所 |
| —with-suexec-bin=/usr/local/httpd/bin/suexec | suEXECを行う実行ファイルの位置 |
| —with-suexec-caller=httpd | suEXECをコールするユーザ |
| —with-suexec-userdir=public_html | suEXECを行うユーザ領域 |
| —with-suexec-docroot=/home | suEXECを行うファイルの保存場所 |
| —with-suexec-logfile=/var/log/httpd/suexec_log | suEXECのログの保存場所 |