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
↑起動をさせます。