よくわからないエンジニア

よく分からないエンジニア(無音鈴鹿)の日々の記録

よくわからないエンジニア

apache 2.4.20をソースインストールする

※注意※この方式でインストールをすると、ファイルの配置先が通常と異なり、後々苦労するはめになるので、以下、新しくapacheインストール方針を変更しました

www.unknownengineer.net

------------------------ここから本文----------------------------------

数日前にrpmbuildを使い、オレオレrpmを作ってみた。

unknownengineer.hatenablog.com

今回CentOS6.7にapacheの最新版を入れる際に、rpmbuildして、個人的なワガママrpmを作ろうとしてみた。

・極力不要なものは入れたくない
・/usr/local/apache以下に全てのファイルを展開する

等々上記を実現する為に、specファイルとソースに変更を加えまくった結果、ビルドに成功したものの、インストール出来ないrpmが完成した。なんだか徒労に終わった感が半端では無いが、apache2.4を入れる必要がある事に変わりは無い。とりあえずソースインストールの手順をまとめた。

目次

CentOS6.7にapache2.4.20をソースインストール

当初、http2.0を試してみようと思ったが、内向きのサーバで公開用ではなく、Let's Encryptが使えない為、大人しく普通にインストールする事にした。

2016年4月22日現在、最新版の2.4.20をインストールする。

cd /usr/local/src
wget http://archive.apache.org/dist/httpd/httpd-2.4.20.tar.gz  
tar xvfz httpd-2.4.20.tar.gz
cd httpd-2.4.20/
./configure --prefix=/usr/local/apache-2.4.20
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found.  Please read the documentation.

「APRねぇよ。ドキュメント読めや」といきなり怒られます。大人しくDocumentを読むと、aprとapr-utilが2.4から必要との事。自分でインストールしても良いのですが、ソースを置いとけば、一緒にビルドして貰えるようなので、

cd ../src
wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/apr/apr-1.5.2.tar.gz
wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/apr/apr-util-1.5.4.tar.gz

tar xvfz apr-1.5.2.tar.gz
tar xvfz apr-util-1.5.4.tar.gz
mv apr-1.5.2 httpd-2.4.20/srclib/apr
mv apr-util-1.5.4 httpd-2.4.20/srclib/apr-util

でこの状態でconfigureをかけます。

./configure --prefix=/usr/local/apache-2.4.20
<中略>
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

pcreが無いと怒られる。普段はどっかのサイトに書いてあったという理由でyumでpcre-develを突っ込んで解消していたが、今回はpcreをmake installして、apacheをビルドする時に、参照するpcreを指定する事にした。※/usr/localの下に突っ込みます。

wget https://sourceforge.net/projects/pcre/files/pcre/8.38/pcre-8.38.tar.gz/download
mv download pcre8.38.tar.gz
tar zxvf pcre8.38.tar.gz
cd pcre8.38/
./configure --prefix=/usr/local
make
make install

/usr/local/libを共有ライブラリとして読みこむようにしてから、configureする。

vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
/usr/local/lib64
ldconfig
./configure --prefix=/usr/local/apache-2.4.20

エラーなくconfigure終了。次はconfigureのオプションを増やす。

./configure --prefix=/usr/local/apache-2.4.20 --enable-so --enable-shared --enable-ssl
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

「SSLねぇよ」と怒られたので、最新のopensslをインストールする。尚、ビルドする際に--sharedを指定しないと、apacheをmakeする段階でErrorが出るので注意。

wget https://www.openssl.org/source/openssl-1.0.1s.tar.gz
tar xvfz openssl-1.0.1s.tar.gz
cd openssl-1.0.1s
./config --prefix=/usr/local --shared
make
make install

先ほどのエラーが消えたので、さらにオプションを増やしてconfigureします。

./configure --prefix=/usr/local/apache-2.4.20 --enable-so --enable-shared --enable-ssl --enable-rewrite --enable-expires --enable-deflate --enable-headers --with-included-apr --enable-substitute
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures

deflate使いたければzlib入れてね。最新版をインストールして明示的に指定します。

wget http://zlib.net/zlib-1.2.8.tar.gz
tar xvfz zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local
make
make install
./configure --prefix=/usr/local/apache-2.4.20 --enable-so --enable-shared --enable-ssl --enable-rewrite --enable-expires --enable-deflate --enable-headers --with-included-apr --enable-substitute --with-z=/usr/local/lib
make
make install

これでやっっっっっとインストールできました!!

なんにせよ、次回はapacheのconfファイル修正と起動までを予定しています。