CentOS 6系の環境にhttpd-2.4系をソースインストールする場合に使える決め打ちインストールスクリプト。
途中で何かのライブラリがないなどのエラーが発生している場合はそのライブラリ(yum install **-devel など)をインストールして、スクリプトが作成した作業ディレクトリなどを削除のうえ、再度実行してみてください。
#! /bin/sh APRPACK=apr-1.4.6 APRUTILPACK=apr-util-1.4.1 HTTPDPACK=httpd-2.4.2 APRDIR=/usr/local/apr APRUTILDIR=${APRDIR} HTTPDINIT=/etc/rc.d/init.d/httpd HTTPDSYSCONF=/etc/sysconfig/httpd SCRDIR=$( dirname $0 ) # スクリプト直下のディレクトリにapr / httpd それぞれの作業ディレクトリ作成 chkdir(){ [ ! -d ${SCRDIR}/apr ] && mkdir -p ${SCRDIR}/apr [ ! -d ${SCRDIR}/httpd ] && mkdir -p ${SCRDIR}/httpd } # インストール共通部 instpack(){ wget http://ftp.riken.jp/net/apache/$3/$1.tar.gz tar zxvf $1.tar.gz pushd $1 ./configure $2 make make install popd } # APRのライブラリパスを登録 setldconfig(){ echo ${APRDIR}/lib > /etc/ld.so.conf.d/apr.conf if [ ${APRDIR} != ${APRUTILDIR} ]; then echo ${APRUTILDIR}/lib >> /etc/ld.so.conf.d/apr.conf fi ldconfig } # 起動スクリプト設定 # build/rpm/httpd.init をベースに。 # 以前は起動スクリプトの中身自体をいじってパスを変更していたが、 # /etc/sysconfig/httpd を使って変更する方が正攻法な気がするので # そっちで対応。 # ただし、check13 については実行する意味はほぼないのでコメントアウト sethttpdinit(){ # /etc/rc.d/init.d/httpd sed -e 's/check13 .* exit 1/# \0/g' ${HTTPDPACK}/build/rpm/httpd.init > ${HTTPDINIT} chmod +x ${HTTPDINIT} # /etc/sysconfig/httpd cat << '_EOT_' > ${HTTPDSYSCONF} HTTPDROOT=/usr/local/apache2 HTTPD=${HTTPDROOT}/bin/httpd PIDFILE=${HTTPDROOT}/logs/httpd.pid _EOT_ } chkdir cd ${SCRDIR}/apr instpack ${APRPACK} "--prefix=${APRDIR}" apr instpack ${APRUTILPACK} "--prefix=${APRUTILDIR} --with-apr=${APRDIR}" apr setldconfig cd ../httpd yum list installed | grep pcre-devel || yum install -y pcre-devel instpack ${HTTPDPACK} "--with-apr=${APRDIR}/ --with-apr-util=${APRUTILDIR}/ --enable-mods-shared=all" httpd sethttpdinit
[Blog:技術系メモ http://t.co/njRIG7DZ ] httpd-2.4系のソースインストールスクリプト。