CentOS7のレポジトリのApacheは2.4.6なのですが、2.4.7以降に導入された機能が使いたかったので、最新安定版のApache 2.4.23をインストールしました。
- ソフトウェアバージョン
- ソフトウェアダウンロード
- ソフトウェア展開
- APRインストール
- APR-UTILインストール
- PCREインストール
- Apache Httpdをインストール
- 設定ファイル編集
- Systemd登録
- 参考URL
ソフトウェアバージョン
$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
ソフトウェア | バージョン | 関連URL |
---|---|---|
Apache httpd | 2.4.23 | https://httpd.apache.org/download.cgi |
apr | 1.5.2 | http://apr.apache.org/download.cgi |
apr-util | 1.5.4 | http://apr.apache.org/download.cgi |
pcre | 8.39 | http://pcre.org/ |
ソフトウェアダウンロード
まずはコンパイルに必要なソフトウェアをインストールしておきます。
yum install gcc gcc-c++
それぞれ関連URLからダウンロードリンクを取得してダウンロードします。
cd /tmp
wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//httpd/httpd-2.4.23.tar.gz
wget http://ftp.riken.jp/net/apache//apr/apr-1.5.2.tar.gz
wget http://ftp.riken.jp/net/apache//apr/apr-util-1.5.4.tar.gz
wget http://downloads.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz
ソフトウェア展開
ダウンロードしたソフトウェアは /usr/local/src
に展開します。
cd /usr/local/src tar xf /tmp/httpd-2.4.23.tar.gz tar xf /tmp/apr-1.5.2.tar.gz tar xf /tmp/apr-util-1.5.4.tar.gz tar xf /tmp/pcre-8.39.tar.gz
APRインストール
cd /usr/local/src/apr-1.5.2/ ./configure -prefix=/usr/local/apr/apr-1.5.2 make make install cd /usr/local/apr ln -s apr-1.5.2 current
APR-UTILインストール
cd /usr/local/src/apr-util-1.5.4 ./configure --prefix=/usr/local/apr-util/apr-util-1.5.4 --with-apr=/usr/local/apr/current make make install cd /usr/local/apr-util/ ln -s apr-util-1.5.4 current
PCREインストール
cd /usr/local/src/pcre-8.39 ./configure -prefix=/usr/local/pcre/pcre-8.39 make make install cd /usr/local/pcre ln -s pcre-8.39 current
Apache Httpdをインストール
今までインストールしたソフトウェアのディレクトリを指定して、ついにHTTPDをインストールします。
インストール
cd /usr/local/src cd /usr/local/src/httpd-2.4.23 ./configure --prefix=/usr/local/apache2/httpd-2.4.23 \ --enable-mpms-shared=all \ --enable-mods-shared=reallyall \ --with-apr=/usr/local/apr/current \ --with-apr-util=/usr/local/apr-util/current \ --with-pcre=/usr/local/pcre/current/bin/pcre-config make make install cd /usr/local/apache2 ln -s httpd-2.4.23 current
ユーザ設定
groupadd apache useradd -s /sbin/nologin apache usermod -G apache apache chown -R apache:apache /usr/local/apache2/
モジュールの一覧
Module Index - Apache HTTP Server Version 2.4
--enable-mods-shared
と --enable-mods-shared
に関しては以下を参考にさせていただきました。
自明かもしれない: Apache 2.4 系をソースからインストールする際の DSO に関して
デフォルトはEvent MPM
httpd -V
の結果見るとデフォルトでEvent MPMになっているのがわかります。
Server version: Apache/2.4.23 (Unix) Server built: Oct 28 2016 06:50:13 Server's Module Magic Number: 20120211:61 Server loaded: APR 1.5.2, APR-UTIL 1.5.4 Compiled using: APR 1.5.2, APR-UTIL 1.5.4 Architecture: 64-bit Server MPM: event threaded: yes (fixed thread count) forked: yes (variable process count)
設定ファイル編集
省略
Systemd登録
最後にSystemdに登録します。
mod_systemd - Apache HTTP Server Version 2.5
vim /etc/systemd/system/httpd.service
[Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/apache2/current/bin/apachectl -k start ExecReload=/usr/local/apache2/current/bin/apachectl -k graceful ExecStop=/usr/local/apache2/current/bin/apachectl -k stop PrivateTmp=true [Install] WantedBy=multi-user.target
Systemdをリロードして起動します。
systemctl daemon-reload systemctl start httpd.service
起動できました。
# systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/etc/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since 金 2016-10-28 07:25:24 EDT; 18min ago Main PID: 6156 (httpd) CGroup: /system.slice/apache2-httpd.service ├─16915 /usr/local/apache2/httpd-2.4.23/bin/httpd -k start ├─16916 /usr/local/apache2/httpd-2.4.23/bin/httpd -k start └─16917 /usr/local/apache2/httpd-2.4.23/bin/httpd -k start
参考URL
公式インストール手順
Compiling and Installing - Apache HTTP Server Version 2.4
全体参考にさせていただきました