VirtualBoxでCentOS7にApache2.4をインストール

前回のエントリーOpenSSL バージョンアップ からの続きです。

今回は、「CentOS7にApache2.4をインストール」です。

環境としてはテストとしてVirtualBoxに、Centos7.1をBase.repoでminimalインストールしてからを前提として始めます。参考にしたのは以下のサイトです。

Apache2.4系をソースからインストール – Qiita

作業ディレクトリは、/usr/local/src です。

必要なパッケージをyumでまとめてインストール
# yum -y install gcc gcc-c++ git wget tar m4 autoconf libtool zlib zlib-devel
# yum -y install httpd-devel libxml2-devel mysql-devel t1lib-devel openssl-devel
# yum -y install bzip2-devel curl-devel gmp-devel aspell-devel recode-devel
PCREのインストール
# wget http://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz
# tar zxvf pcre-8.37.tar.gz
# mkdir /usr/local/pcre
# cd pcre-8.3.7
# ./configure --prefix=/usr/local/pcre
# make && make install
aprのインストール
# wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//apr/apr-1.5.2.tar.gz
# tar zxvf apr-1.5.2.tar.gz
# mkdir /usr/local/apr
# cd apr-1.5.2
# ./configure --prefix=/usr/local/apr
# make && make install

apr-iconvの展開
# wget https://www.apache.org/dist/apr/apr-iconv-1.2.1.tar.gz
# tar zxvf apr-iconv-1.2.1.tar.gz

apr-utilのインストール
# wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//apr/apr-util-1.5.4.tar.gz
# tar apr-util-1.5.4.tar.gz
# mkdir /usr/local/apr-util
# cd apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=../apr-iconv-1.2.1
# make && make install

ポイントは、APR-Utilのconfigureの際に、APRをインストールしたディレクトリ名を- -with-apr=/[aprディレクトリパス] オプションで指定することです。

同じく、APR-Utilのconfigureの際に、apr-iconvを追加コンパイルするときには、- -with-apr-iconv=/[apr解凍ディレクトリ] と指定してあげて下さい。(apr-iconvは解凍するだけでmakeしなくても良い。)

libiconvは日本語patchが必要らしく、以下のサイトを参考にしました。

libiconv 1.13インストール手順 – Knowlege Database

# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
# wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.13-ja-1.patch.gz
# tar xfvz libiconv-1.13.tar.gz
# cd libiconv-1.13
# yum install patch
# gzip -dc ../libiconv-1.13-ja-1.patch.gz | patch -p1
./configure
# make && make install

※ apache起動時にlibiconv のエラーを回避する方法を拾ったのでメモです。
ライブラリのパスを通す http://fisherman23.blog112.fc2.com/blog-entry-140.html

# vi /etc/ld.so.conf
/usr/local/lib  ←これを追加し、保存
# ldconfig  (実行)

やっと、Apache本体のインストールです。(httpd-2.4.18 2016年1月21日現在最新版.)

# wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.4.18.tar.gz
# tar zxvf httpd-2.4.18
# cd httpd-2.4.18
# ./configure --enable-suexec --prefix=/usr/local/apache2 --enable-cache --enable-disk-cache --enable-mem-cache --enable-logio --enable-header --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-ssl --with-ssl=/usr/local/ssl --enable-rewrite --enable-so --enable-proxy --enable-mods-shared=all
# make && make install

VirtualBoxでは関係ありませんが、Apacheのリクエスト並列処理オプションとして –enable-mpms-shared を本番環境では設定すると良いそうです。

httpd設定ファイル編集は、Webサーバー構築(Apache) – CentOSで自宅サーバー構築 を参考にしました。

# vi /usr/local/apache2/conf/httpd.conf
Group apache
User apache
ServerName www.southerncross.net
<Directory "/usr/local/apache2/htdocs">
AllowOverride All
・・・

起動確認の前に、firewalldの80番ポート解放です。

# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --reload

CentOS7では、ホスト名の管理は/etc/hostnameの編集だけで済むようになりました。

# vi /etc/hostname
www.southerncross.net

VirtualBoxで[設定]→[ネットワーク]→[アダプター1]→[ポートフォワーディング]から、ゲストの80番をポートフォワーディングして

portfowording

本番環境では宅内ルーターのファイアウォール80番ポートの解放、さらにサーバーのプライベートIPアドレスを固定して、[静的アドレス変換]などの設定項目からTCPのhttp80番を指定してポートフォワーディングします。

一方、今回はVirtualBoxでホスト機のブラウザでアドレス名でアクセスするとのことですので、C:\Windows\System32/Dirvers\etc のhostファイルの編集が必要です。

# ip addr show

で表示されたプライベートIPをメモ帳で直接hostファイルを編集します。例えば、

192.168.56.101    www.southerncross.net

とします。Base.repoで入っているhttpdの起動を停止。

# systemctl disable httpd
# systemctl stop httpd

OS起動で自動起動させるには、起動スクリプトをコピーして、

# cp -ip /usr/local/src/httpd-2.4.18/build/rpm/httpd.init /etc/rc.d/init.d/apache2
 設定ファイルを以下のように書き換えます。参考:URL
2015年末 最新LAMP環境 Apache HTTP/2+PHP7+MySQL5.7 インストールメモ | あぱーブログ
# vi /etc/rc.d/init.d/apache2
[修正内容]
httpd=${HTTPD-/usr/sbin/httpd}
 pidfile=${PIDFILE-/var/run/${prog}.pid}
 lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
 ↓
 httpd=${HTTPD-/usr/local/apache2/bin/httpd}
 pidfile=${PIDFILE-/usr/local/apache2/logs/${prog}.pid}
 lockfile=${LOCKFILE-/usr/local/apache2/logs/${prog}}
  
 CONFFILE=/etc/httpd/conf/httpd.conf
 ↓
 CONFFILE=/usr/local/apache2/conf/httpd.conf 
 [ここまで]

chkconfig に登録、Apache2を起動します。

# chkconfig --add apache2
# chkconfig apache2 on
# /usr/local/apahce2/bin/apachectl start

ブラウザから、http://www.southerncross.net/ を入力して [It works!] と表示されれば成功です。It works! だけでは味気ないなと思ったら、ちょっと遊んで

# cp /usr/share/httpd/noindex/index.html /usr/local/apache2/htdocs/index.html
# cp -r /usr/share/httpd/noindex/css /usr/local/apache2/htdocs/css
# cp -r /usr/share/httpd/noindex/images /usr/local/apache2/htdocs/images
# chown -R apache. /usr/local/apache2/htdocs/

すると、Apache2.4 テストページが表示されます。お疲れ様でした。

test123