※注意※この方式でインストールをすると、ファイルの配置先が通常と異なり、後々苦労するはめになるので、以下、新しくapacheインストール方針を変更しました
------------------------ここから本文----------------------------------
数日前に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ファイル修正と起動までを予定しています。