Apacheモジュール追加
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 のモジュール追加が完了です。