apache (httpd) 2.4 系 ソースインストール

この記事は約10分で読めます。

CentOS7系にソースから、2019年4月時点で最新版の「httpd-2.4.39」を入れます。

# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

に、apache 2.4.39をインストールします。

ツール類インストール

# yum update
# yum groupinstall "Development Tools"

↑必要ライブラリなどを入れます。

apache (httpd) インストール

# wget http://ftp.jaist.ac.jp/pub/apache//httpd/httpd-2.4.39.tar.gz
# tar xzvf httpd-2.4.39.tar.gz
# cd httpd-2.4.39

↑ 2019年4月での最新版、2.4.39 をダウンロードして解凍します。
# ./configure --enable-suexec --enable-ssl --with-suexec-caller=www --with-suexec-userdir=public_html --with-suexec-docroot=/home --with-suexec-logfile=/usr/local/apache2/logs/suexec_log --with-suexec-uidmin=100 --with-suexec-gidmin=100 --with-suexec-safepath=/bin:/usr/bin --enable-module=so --enable-module=rewrite --enable-modules=ssl
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure: 
configure: Configuring Apache Portable Runtime library...
configure: 
checking for APR... no
configure: error: APR not found.  Please read the documentation.

↑APRがないよ!と言われてしまいます・・・
APRとは、「Apache Portable Runtime」。ランタイム関係のソフトを先に入れます。

APRインストール

# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-1.6.5.tar.gz
# tar xzvf apr-1.6.5.tar.gz
# cd apr-1.6.5
# ./configure
# make
# make install

↑ APR 本体を入れます。
# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-util-1.6.1.tar.gz
# tar xzvfapr-util-1.6.1.tar.gz
# cd apr-util-1.6.1
# ./configure 
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
APR-util Version: 1.6.1
checking for chosen layout... apr-util
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
Applying apr-util hints file rules for x86_64-pc-linux-gnu
checking for APR... no
configure: error: APR could not be located. Please use the --with-apr option.

↑apr-utilのconfigureでエラーとなりました。
# ./configure --with-apr=/usr/local/apr

↑上記のオプションで、configureのエラーが解消されました。
# make

xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
 #include <expat.h>
                   ^
compilation terminated.
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: Leaving directory `/root/apr-util-1.6.1'
make: *** [all-recursive] Error 1

↑ とエラーとなりました。
# yum install expat-devel

↑不足分、expatのライブラリを入れます。
# make clean
# ./configure --with-apr=/usr/local/apr
# make
# make install

↑で、うまくいくかと思います。

apache (httpd) インストール 再び・・・

# ./configure --enable-suexec --enable-ssl --with-suexec-caller=www --with-suexec-userdir=public_html --with-suexec-docroot=/home --with-suexec-logfile=/usr/local/apache2/logs/suexec_log --with-suexec-uidmin=100 --with-suexec-gidmin=100 --with-suexec-safepath=/bin:/usr/bin --enable-module=so --enable-module=rewrite --enable-modules=ssl

checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

↑httpdのディレクトリに戻り、再び、「configure」をします。
「PCRE」関係のライブラリ無いよ。というエラーになりました。
# yum install pcre-devel

↑pcreのライブラリを入れます。
# ./configure --enable-suexec --enable-ssl --with-suexec-caller=www --with-suexec-userdir=public_html --with-suexec-docroot=/home --with-suexec-logfile=/usr/local/apache2/logs/suexec_log --with-suexec-uidmin=100 --with-suexec-gidmin=100 --with-suexec-safepath=/bin:/usr/bin --enable-module=so --enable-module=rewrite --enable-modules=ssl

checking for OpenSSL version >= 0.9.8a... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

↑ opensslのライブラリが古いというエラー。
# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

↑ openssl自体は、新しいのですが、ライブラリが古いようです・・・
# yum install openssl-devel

↑opensslのライブラリを入れます。
# ./configure --enable-suexec --enable-ssl --with-suexec-caller=www --with-suexec-userdir=public_html --with-suexec-docroot=/home --with-suexec-logfile=/usr/local/apache2/logs/suexec_log --with-suexec-uidmin=100 --with-suexec-gidmin=100 --with-suexec-safepath=/bin:/usr/bin --enable-module=so --enable-module=rewrite --enable-modules=ssl

# make
# make install

↑無事、httpdのインストールができました。

apache (httpd) 設定

httpd.confを変更します。

vi /usr/local/apache2/conf/httpd.conf

# LoadModule cgid_module modules/mod_cgid.so
↓
LoadModule cgid_module modules/mod_cgid.so

↑「ScriptAlias」の設定が有効になるようにします。
<Directory />
    AllowOverride none
    Require all denied
</Directory>
↓
<Directory /home>
    Options All -Indexes +SymLinksIfOwnerMatch -FollowSymLinks
    AllowOverride All
</Directory>

↑CGIなどが動作するようにします。
DirectoryIndex index.html
↓
DirectoryIndex index.php index.html index.cgi

↑ディレクトリを指定したときの、ファイル表示順序を設定します。
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
↓
# ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

↑/cgi-bin/の指定は解除します。

apache (httpd) 起動

# /usr/local/apache2/bin/apachectl configtest
Syntax OK

↑エラーがないかチェックします。
# /usr/local/apache2/bin/apachectl start

↑起動をさせます。

タイトルとURLをコピーしました