##はじめに
apache2.2系はすでにEOLしていますが、このバージョンでインストールしたい方もいるかもしれないので投稿
##環境
- apache2.2
- openssl1.0.1系
- CentOS 5, 6, 7
##★Apache2.2のconfigureについて
参考
http://httpd.apache.org/docs/2.2/programs/configure.html#synopsis
以下のインストール方法で--enable-mods-sharedは全部入りを目指しているが「ldap」を指定すると、
mod_ldap.so が古いopensslライブラリを参照していて、起動しないのでldapは外しています。
##インストール
###OpenSSL
- コンパイル
./config shared zlib --prefix=/usr/local/openssl-1.0.2p
make && make install
- バージョン情報隠蔽
cd /usr/local
ln -s openssl-1.0.2n openssl
- 共通ライブラリパス追加
cat <<EOT > /etc/ld.so.conf.d/openssl.conf
/usr/local/openssl/lib
EOT
ldconfig
###Apache2.2
- 基本
./configure --prefix=/usr/local/httpd-2.2.34 \
--with-mpm=prefork \
--enable-mods-shared="all ssl cache proxy authn_alias mem_cache file_cache charset_lite dav_lock disk_cache" \
--with-ssl=/usr/local/openssl
make && make install
- aprもソースから入れる場合
cd srclib/apr
./configure --prefix=/usr/local/apr-httpd-2.2.34/
make && make install
cd srclib/apr-util
./configure --prefix=/usr/local/apr-util-httpd-2.2.34/ --with-apr=/usr/local/apr-httpd-2.2.34/
make && make install
./configure --prefix=/usr/local/httpd-2.2.34 \
--with-mpm=prefork \
--enable-mods-shared="all ssl cache proxy authn_alias mem_cache file_cache charset_lite dav_lock disk_cache" \
--with-ssl=/usr/local/openssl \
--with-apr=/usr/local/apr-httpd-2.2.34/ \
--with-apr-util=/usr/local/apr-util-httpd-2.2.34
make && make install
- バージョン情報隠蔽
ln -s httpd-2.2.34 apache2
##ログローテート
###CentOS6
/usr/local/apache2/logs/*log {
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd-new reload > /dev/null 2>/dev/null || true
endscript
}
###CentOS7
/usr/local/apache2/logs/*log {
missingok
notifempty
sharedscripts
compress
postrotate
/bin/systemctl reload httpd-2.2.service > /dev/null 2>/dev/null || true
endscript
}
##起動スクリプト
###CentOS6
cp -p httpd-2.2.32/build/rpm/httpd.init /etc/init.d/httpd-new
vi /etc/init.d/httpd-new
prog=httpd
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache2/logs/${prog}.pid}
lockfile=${LOCKFILE-/usr/local/apache2/logs/${prog}.lock}
CONFFILE=/usr/local/apache2/conf/httpd.conf
###CentOS7
vi /etc/systemd/system/httpd-2.2.service
[Unit]
Description=Apache2.2
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/httpd -k start
ExecReload=/usr/local/apache2/bin/httpd -k graceful
ExecStop=/usr/local/apache2/bin/httpd -k stop
[Install]
WantedBy=multi-user.target