Fedora Core 6 apache2.2系



前書き (執筆:2007/05/17)

このページではapacheをapache公式サイト:The Apache HTTP Server Projectからソースファイル(tar.gz)を入手してインストールする方法について記載しています。

2.2系最新バージョンは 執筆時点で2.2.4 になります。
自分の環境に合わせて 2.2系 2.0系 1.3系 を選択してください。

ソースファイルの入手

最新のソースファイル(tar.gz.)を取得します。
ここではKDDI Labsのミラーサーバーを使用しています。

$ wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.4.tar.gz

下記のように処理されます。

--17:07:50--  http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.4.tar.gz
ftp.kddilabs.jp をDNSに問いあわせています... 192.26.91.193, 2001:200:601:10:206:5bff:fef0:466c
ftp.kddilabs.jp|192.26.91.193|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6365535 (6.1M) [application/x-gzip]
Saving to: `httpd-2.2.4.tar.gz'

100%[==========================================================>] 6,365,535    759K/s   in 8.8s

17:07:59 (708 KB/s) - `httpd-2.2.4.tar.gz' を保存しました [6365535/6365535]

ソースファイルの展開

取得したソースファイルを展開します。

$ tar xzf httpd-2.2.4.tar.gz


httpd-2.2.4 という名前のディレクトリが作成され、その配下に展開(解凍)されます。
ディレクトリ下に移動します。

$ cd httpd-2.2.4


コンフィグ・コンパイル・インストール

次にコンフィグを行いますが、自分の環境、作成したいWeb環境に応じて様々なオプションを設定してください。
オプションについては公式サイト:コンパイルとインストールを参考にするといいでしょう。

ここでは

  • rewriteモジュールを有効
  • SSL(https)を有効
  • WevDAVを無効

のオプションを指定しています。
SSLを使用するためには openssl 関係のモジュールが必要になります。
事前に別途インストールしておく必要があります。
ここでは openssl 関係のインストールについては割愛します。
インストール先を特に指定しない場合は /usr/local/apache2 配下にインストールされます。
インストール先を指定する場合は --prefix= オプションを使用してください。

$ ./configure --enable-rewrite --enable-ssl --disable-dav -with-included-apr

注意

checking for APR-util... yes
configure: error: Cannot use an external APR-util with the bundled APR

というエラーがでる環境があります。
これは最後に指定した -with-included-apr のオプションが設定されていない、または他のARPのオプションが必要な場合です。
下記のオプションを環境に合わせて使用してください。

-with-bundled-apr
-with-included-apr
-with-internal-apr


コンフィグを開始すると下記のようになります。

checking for chosen layout... Apache
checking for working mkdir -p... yes
checking build system type... i686-pc-linux-gnu
  ・
  ・
config.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands


エラー表示がなく、正常にconfigureが終了したら、コンパイル(make)を行います。

$ make

コンパイルを開始すると下記のようになります。

Making all in srclib
  ・
  ・
make[1]: ディレクトリ `/home/userDir/httpd-2.2.4' から出ます

エラー表示もなく、正常にmakeが終了したら、インストールを行います。
インストールを開始するにあたりスーパーユーザーになり、展開したディレクトリに移動します。
ここでは参考として 展開したディレクトリを /home/userDir/http-2.2.4 としています。

$ su -
Password: [パスワード入力]
# cd /home/userDir/http-2.2.4
# make install

下記のように処理されます。

Making install in srclib
make[1]: ディレクトリ `/home/userDir/httpd-2.2.4/srclib' に入ります
Making install in apr
make[2]: ディレクトリ `/home/userDir/httpd-2.2.4/srclib/apr' に入ります
sed 's,^\(location=\).*$,\1installed,' < apr-1-config > apr-config.out
sed 's,^\(apr_build.*=\).*$,\1/usr/local/apache2/build,' < build/apr_rules.mk > build/apr_rules.out
  ・
  ・
Installing configuration files
[PRESERVING EXISTING HTDOCS SUBDIR: /usr/local/apache2/htdocs]
[PRESERVING EXISTING ERROR SUBDIR: /usr/local/apache2/error]
[PRESERVING EXISTING ICONS SUBDIR: /usr/local/apache2/icons]
[PRESERVING EXISTING CGI SUBDIR: /usr/local/apache2/cgi-bin]
Installing header files
Installing build system files
Installing man pages and online manual
make[1]: ディレクトリ `/home/userDir/httpd-2.2.4' から出ます

エラー表示がなく、上記のように終わればインストールは正常終了しました。

基本設定

apache2.2系の設定ファイルは コンフィグ時に特に指定しなければ /usr/local/apache2/conf/httpd.conf になります。
インストール先を指定した場合は /指定先ディレクトリ/conf/httpd.conf となります。
設定内容については Fedora Core 4 Apache 基本設定 を参考にしてください。

# vi /usr/local/apache2/conf/httpd.conf


基本設定が終了したら設定内容を確認します。

# /usr/local/apache2/bin/apachectl -t
Syntax OK

Syntax OK と表示されれば設定完了です。

自動起動設定

起動スクリプトをコピーします。

# cp /home/userDir/http-2.2.4/buid/rpm/httpd.init /etc/rc.d/init.d/http


コピーした /etc/rc.d/init.d/http は RPM(パッケージ)用に設定されていますので一部修正します。

# vi /etc/rc.d/init.d/http

注:修正箇所のみを、ここでは抽出して記述します。
26行目

# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/httpd.conf

下記のようにディレクトリ名を修正。
基本的にコメント欄なので修正しなくても可

# processname: httpd
# pidfile: /usr/local/apache2/logs/httpd.pid
# config: /usr/local/apache2/conf/httpd.conf


44、45行目

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
RETVAL=0

ここも下記のようにディレクトリ名を修正。

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache2/bin/apachectl
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
prog=httpd
RETVAL=0


51行目

# check for 1.3 configuration
check13 () {
	CONFFILE=/etc/httpd/conf/httpd.conf
	GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"
	GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"
	GONE="${GONE}AccessConfig|ResourceConfig)"

ここも下記のようにディレクトリ名を修正。

# check for 1.3 configuration
check13 () {
	CONFFILE=/usr/local/apache2/conf/httpd.conf
	GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"
	GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"
	GONE="${GONE}AccessConfig|ResourceConfig)"


72行目
常にSSLを使った起動を行う場合はオプションに -D SSL を追記。

# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure.  So we just do it the way init scripts
# are expected to behave here.
start() {
        echo -n $"Starting $prog: "
        check13 || exit 1
        daemon $httpd $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
        return $RETVAL
}

下記のように -D SSL を追記。

# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure.  So we just do it the way init scripts
# are expected to behave here.
start() {
        echo -n $"Starting $prog: "
        check13 || exit 1
        daemon $httpd -D SSL $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
        return $RETVAL
}

以上で修正終了です。

serviceとして組み込みます。

# chkconfig --add http

自動起動設定をします。

# chkconfig http on

以上で自動起動の設定が完了です。

自動起動のスクリプトが正しく設定されたか確認します。

# /etc/rc.d/init.d/httpd start
httpd を起動中:                                            [  OK  ]

以上でAPACHEの自動起動設定は終了です。

ログローテーション設定

ログはほっておくとどんどん肥大化しますので定期的に分割するように設定をしてみましょう。
大きく分けて2種類の方法があります。

  • システムに任せる方法(logrotateを使用する方法)
  • apache自体に任せる方法(httpd.conf内にrotatelogsを指定する方法)

どちらも一長一短です。
ここでは、システムに任せる方法(logrotateを使用する方法)について記載します。

システム自体のログローテーションの設定ファイルは /etc/logrotate.d にあります。
ここで httpd というファイルがなければソースファイルを展開したディレクトリ内にありますのでコピーします。

# cp /home/userDir/http-2.2.4/buid/rpm/httpd.logrotate /etc/logrotate.d/http


ディレクトリ名を下記のように修正してください。
なければ新規に作成します。。

/usr/local/apache2/logs/*log {
    missingok
    notifempty
    sharedscripts
    postrotate
       /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}

以上でapacheの設定は終了です。



Last-modified: 2015-04-23 (木) 15:23:03 (946d)