Apache(httpd)をソースから構築する

Apache(httpd)をソースから構築する

概要

今回はソースからインストールしてLAMP環境を構築していきます。必要になるものはなるべくソースからインストールしていますが、wgetgccはdnfコマンドでパッケージからインストールします。この記事は Apacheをソースからインストールします。MySQLやPHPは次回の記事でインストールしていきます。

環境

OS
– ホスト: ESXi 7.0.1
– OS: CentOS8 (最小限のインストール)

使用ライブラリ
– apache-2.4.46
– apr-1.7.0
– apr-util-1.6.1
– openeel-3.0.0
– pcre-8.44
– expat-2.3.0

事前準備

Apacheをソースコードからインストールするためには、gccmakepcrepcre-devel のライブラリが必要になります。 なので、それらをあらかじめインストールしておきます。

httpdをソースからインストール

今回は、ソースからApache(httpd)をインストールしていきます。 以下のページにApacheのビルドに必要なライブラリやインストール手順が書かれていて、ここを参考にしています。 Compiling and Installing – Apache HTTP Server Version 2.4 これに従うと、APR と APR-Util と PCRE というのライブラリが必要になりますが、その他にもExpatというライブラリや追加した方が良いモジュールもあるので、作業がスムーズになるように整理してまとめていきます。 まず、Apache本体をダウンロードします。

APR と APR-Util

APR(Apache Portable Runtime)は、Apacheのサポートライブラリで、OS等の環境の違いを吸収する機能です。使用するOSが、機能が備わっていない場合、このAPRが代わりとなってその機能を提供してくれます。

APR-Utilも同様に、ダウンロードと解凍をして、解凍できたディレクトリをhttpd-2.4.46/srclib/apr-utilに移動させます

以上でAPRとAPR-Utilの準備は終わりです。

PCRE

PCRE(Perl Compatible Regular Expressions)は、Perl互換の正規表現を他の言語でも使えるようにするもので、多くのミドルウェアで必要とされているライブラリです。 事前準備が終わっていなければ、インストールしてください。 PCREのビルドをしていきます。wget でダウンロードして、展開・解凍を行い、解凍・展開してビルドします。

Expat

Expatとは、XMLファイルの中身のデータを解析・整形するライブラリです。 Welcome to Expat! · Expat XML parser のサイトから、wget でダウンロードして、展開・解凍を行い、解凍・展開してビルドします。

OpenSSL

これでApacheのビルドができますが、TLS通信は必須なので、OpenSSLをソースからビルドしていきます。 この段階で設定しておかないと、後からOpenSSLを使用できないからです。(再度ビルドすることになる)

Apacheのビルド

これで準備ができたので、Apacheをビルドしていきます。

configureのオプションは以下の通りです。

オプション 説明
–prefix インストールするディレクトリを指定
–with-included-apr srclib内のAPRとAPR-Utilもビルド対象にする
–with-pcre インストールしたPCREのディレクトリを指定
–enable-mods-shared 動的モジュールをビルド対象にする
–enable-ssl sslモジュールをビルド対象にする
–with-ssl インストールしたOpenSSLのディレクトリを指定
–with-mpms-shared worker, prefork, eventをビルド対象にする

ビルドができたら、新しくapacheのユーザとグループを作成し、メイン設定ファイルを変更します。
サービスを動かす用のユーザなので、デフォルトシェルに/sbin/nologinを指定して、ログインを禁止にします。

以下のコマンドで変更を反映させます。

ファイアウォールの設定を変更して、HTTP/HTTPS通信用の待ち受けポートを開放させます。

自動起動&今すぐ起動の設定を行います。

まずはcurlコマンドでページをとってこれるか確認します。

そしたら、実際にWebブラウザで開いてみて、この画面が表示されればApacheがビルドして、起動することができています。

まとめ

こんかいは、Apacheのみでしたが、これから、LAMP環境のMySQL PHPのソースからのインストールに挑戦していきたいと思います。