Apache 2.2.21
ナビゲーションに移動
検索に移動
準備
インストール
- ソースの取得
[root@XXXXX ~]# wget -P /usr/local/src http://www.ring.gr.jp/archives/net/apache/httpd/httpd-2.2.21.tar.gz
/usr/local/srcにhttpd-2.2.21.tar.gzを取得。
- ソースの解凍
[root@XXXXX ~]# cd /usr/local/src [root@XXXXX ~]# tar zxvf httpd-2.2.21.tar.gz
/usr/local/srcにhttpd-2.2.21フォルダが作成される。
- APR(Apache Portable Runtime)のインストール
- apr(1.4.5)
(configureのヘルプ)[root@XXXXX ~]# cd /usr/local/src/httpd-2.2.21/srclib/apr [root@XXXXX ~]# ./configure --prefix=/usr/local/httpd-2.2.21/apr [root@XXXXX ~]# make [root@XXXXX ~]# make install
- apr-util(1.3.12)
(configureのヘルプ)[root@XXXXX ~]# cd /usr/local/src/httpd-2.2.21/srclib/apr-util [root@XXXXX ~]# ./configure --prefix=/usr/local/httpd-2.2.21/apr-util --with-apr=/usr/local/httpd-2.2.21/apr [root@XXXXX ~]# make [root@XXXXX ~]# make install
- apr(1.4.5)
- コンパイル設定
(configureのヘルプ)[root@XXXXX ~]# cd /usr/local/src/httpd-2.2.21 [root@XXXXX ~]# ./configure \ > --prefix=/usr/local/httpd-2.2.21 \ > --enable-so \ > --enable-rewrite=shared \ > --enable-dav=shared \ > --enable-dav-fs=shared \ > --enable-dav-lock=shared \ > --enable-ssl=shared \ > --with-ssl=/usr/local/ssl/ \ > --with-apr=/usr/local/httpd-2.2.21/apr \ > --with-apr-util=/usr/local/httpd-2.2.21/apr-util
- インストール
[root@XXXXX ~]# make [root@XXXXX ~]# make install
- シンボリックリンクの作成
[root@XXXXX ~]# ln -s /usr/local/httpd-2.2.21 /usr/local/apache2
初期設定
apacheユーザーの作成
apache専用のユーザーを作成する。ユーザー名はapache。
[root@XXXXX ~]# groupadd apache
[root@XXXXX ~]# useradd -g apache apache
httpd.confの設定
[root@XXXXX ~]# vi /usr/local/apache2/conf/httpd.conf
- ユーザーとグループの変更
User daemon Group daemon ↓ User apache Group apache
- サーバー名の設定
ServerName www.example.com:80 ↓ ServerName XXXXXXXXXXX:80
起動
下記のコマンドで起動、停止、再起動を行う
[root@XXXXX ~]# /usr/local/apache2/bin/apachectl start ← 起動
[root@XXXXX ~]# /usr/local/apache2/bin/apachectl stop ← 停止
[root@XXXXX ~]# /usr/local/apache2/bin/apachectl restart ← 再起動
動作確認
http,httpsでそれぞれアクセスし「It works!」が表示されればOK。
自動起動設定
- 起動スクリプトのコピー
[root@XXXXX ~]# cp /usr/local/src/httpd-2.2.21/build/rpm/httpd.init /etc/rc.d/init.d/httpd
- 起動スクリプトの編集
[root@XXXXX ~]# vi /etc/rc.d/init.d/httpd
パスの変更httpd=${HTTPD-/usr/sbin/httpd} ↓ httpd=${HTTPD-/usr/local/apache2/bin/httpd}
(~check13()の中~)CONFFILE=/etc/httpd/conf/httpd.conf ↓ CONFFILE=/usr/local/apache2/conf/httpd.conf
- 実行権限を与えて自動起動設定
[root@XXXXX ~]# chmod 755 /etc/rc.d/init.d/httpd [root@XXXXX ~]# chkconfig --add httpd [root@XXXXX ~]# chkconfig httpd on [root@XXXXX ~]# chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
他
STOPに失敗する
上記の手順でインストールするとhttpdスクリプトでstopさせる時に失敗してしまう。
[root@XXXXX ~]# /etc/rc.d/init.d/httpd start
httpd を起動中: [ OK ]
[root@XXXXX ~]# /etc/rc.d/init.d/httpd stop
httpd を停止中: [失敗]
pidファイルの位置が違っているのが原因みたい。
[root@XXXXX ~]# /etc/rc.d/init.d/httpd start
httpd を起動中: [ OK ]
[root@XXXXX ~]# find / -name *.pid
/var/run/abrtd.pid
/var/run/syslogd.pid
/var/run/sshd.pid
/var/run/crond.pid
/var/run/messagebus.pid
/var/run/haldaemon.pid
/usr/local/httpd-2.2.21/logs/httpd.pid ← ここにpidファイルが作成されている
httpd起動スクリプトでは、
pidfile=${PIDFILE-/var/log/httpd/${prog}.pid}
と記述されている。
Apache HTTP サーバ バージョン 2.2 ドキュメントによるとpid作成先を設定するディレクティブはPidFileでデフォルトはlogs/httpd.pidになるみたい。
httpd.confには記述が無いので追加する。
[root@XXXXX ~]# vi /usr/local/apache2/conf/httpd.conf
PidFile /var/run/httpd.pid ← ServerRootの次ぐらいの行に追加
httpd起動スクリプトも修正する。
[root@XXXXX ~]# vi /etc/rc.d/init.d/httpd
# pidfile=${PIDFILE-/var/log/httpd/${prog}.pid} ← コメントアウト
pidfile=${PIDFILE-/var/run/httpd.pid} ← 追加
テスト
[root@XXXXX ~]# /etc/rc.d/init.d/httpd start
httpd を起動中: [ OK ]
[root@XXXXX ~]# find / -name *.pid
/var/run/abrtd.pid
/var/run/syslogd.pid
/var/run/sshd.pid
/var/run/crond.pid
/var/run/httpd.pid ←
/var/run/messagebus.pid
/var/run/haldaemon.pid
[root@XXXXX ~]# /etc/rc.d/init.d/httpd stop
httpd を停止中: [ OK ]
STOPに失敗する その2
conf/extra/httpd-mpm.confにPidFileディレクティブの記述があるがソースからコンパイルするとhttpd.confでextra/httpd-mpm.confがincludeされない(?)ようである。httpd-mpm.confでPidFileのパスを修正し、httpd.confでextra/httpd-mpm.confをincludeさせてもOKかと。
[root@XXXXX ~]# vi /usr/local/apache2/conf/extra/httpd-mpm.conf
#PidFile "logs/httpd.pid"
↓
PidFile "/var/run/httpd.pid"
#LockFile "logs/httpd/accept.lock"
↓
LockFile "/var/lock/subsys/httpd"
[root@XXXXX ~]# vi /usr/local/apache2/conf/httpd.conf
# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf
↓
Include conf/extra/httpd-mpm.conf ← コメント外す
httpd起動スクリプトの修正は同じ。