Apache はインストール後にモジュールを追加でインストールできるので、 systemdモジュールを追加でインストールしてみたいと思います。


※インストール作業は root で行います。

事前確認

Apache に後から追加するには、前提条件があります。
ひとつは、mod_so が有効であること、あとひとつは、インストールするモジュールにもよりますが、 該当モジュールを動かすためのライブラリがインストールされていることです。 後者は必須ではありませんが、ないと該当のモジュールが動作しない場合があります。
今回は、mod_systemd を後から追加する形でインストールします。また、mod_systemd をインストール するには、systemd-libs、systemd-devel がインストールされている必要があります。(※後者のパターン)
インストールされていないとエラーが発生し動作しません。

mod_so がインストールされているか確認するには、次のコマンドを実行し、「mod_so.c」が表示されれば大丈夫です。

/usr/local/apache/bin/httpd -l ※オプションは、小文字の「L」

コマンドを実行して、mod_so がない場合は、ソースコードを mod_so を有効にして再度コンパイルし、 インストールしなおします。
systemdのライブラリがインストールか確認するには、下記コマンドを実行します。 リストに「systemd-libs」、「systemd-devel」があれば大丈夫です。
インストールされていなければ、dnf コマンドを使ってインストールします。

dnf list --installed | grep systemd


モジュールインストール

モジュールをインストールするには、apxs(APache eXtenSion tool) コマンドを使います。
モジュールのソースコードのあるディレクトリへ移動し、apxs コマンドを実行します。 今回は、「-lsystemd(ハイフン小文字「L」systemd)」オプションを指定します。

※apxs のパスはシステムより違う場合があります。

※詳しくは、動画から

cd apache-2.4.63/modules/arch/unix

/usr/local/apache/bin/apxs -i -a -c mod_systemd -lsystemd

上記コマンドを実行すると、インストールされます。

httpd.conf をみると、下記の設定が自動的に追加されています。

LoadModule systemd_module modules/mod_systemd

下記コマンドを実行し、モジュールが正常にインストールされているか確認をします。
「Syntax OK」と表示されれば、正常にインストールされています。エラーがある場合は、エラーが表示されます。

※apachectl、httpd のパスはシステムよって違う場合があります。

/usr/local/apache/bin/apachectl configtest

apachectl コマンドがない場合は、下記コマンドでも確認ができます。

/usr/local/apache/bin/httpd -t



・Apache 公式サイト
apxs - APache eXtenSion tool - Apache HTTP Server Version 2.4


以上で、Apache のモジュール追加が完了です。