makeする

 これまでにいろいろなオプションを説明してきたため手順が分かりづらくなったかもしれない。本稿では、Configurationファイルにはいっさい手を加えず、次のようにDSOを有効としてApacheをコンパイルすることにする。

$ ./configure --enable-module=so --enable-rule=SHARED_CORE

 この設定により、Table 1に示したモジュールのうち「○」を付けたモジュールはApacheに組み込まれ、「×」を付けたモジュールはDSOで組み込めるようにコンパイルされるという設定で、Apacheが構成される。なお、ここではレイアウトオプションを何も指定していないので、標準のApacheレイアウトでインストールされる(Fig.3を参照)。もし必要があれば、--with-layoutオプションをさらに指定し、レイアウトを変更してほしい。

 上記のコマンドの実行を終えた後には、Makefileファイルができあがっている。次は、makeを実行すれば、実行ファイル(バイナリファイル)などが生成される。

$ make

 これにより、DSOが有効となった状態でコンパイルされるはずだ。

指定先ディレクトリにインストールする

 makeが終わったならば、rootユーザーとしてログインし、実際にディレクトリ先にインストール(コピー)する。makeによってカレントディレクトリに生成されたバイナリや設定ファイルなどは、makeにinstallオプションを指定することで、指定先のインストールディレクトリが存在しなければ作成し、規定の場所へコピー(インストール)されるのだ。

$ su
# make install

 実行後は、/usr/local/apacheディレクトリ下に(レイアウトを別の場所に指定した場合には、その該当箇所に)Apacheの各種ファイルがインストールされる。なお、インストール先に既存の設定ファイル(後述するhttpd.confファイルなど)があると、設定ファイルは上書きせずに、バイナリファイルだけが上書きされる。そのため既存の設定ファイルが消えてしまう恐れはない。

 詳細は後述するが、Apacheのバイナリファイルは「httpd」というファイルだ。httpdにオプション「-l」を付けて実行すると、どのモジュールが組み込まれているかを確認できる。make install後には、正しくモジュールが組み込まれているかどうかを見てみよう。

$ /usr/local/apache/bin/httpd -l

 この場合、本稿と同じ手順で進めた際には次のように表示されるはずだ。

Compiled-in modules:
http_core.c
mod_env.c
mod_log_config.c
mod_mime.c
mod_negotiation.c
mod_status.c
mod_include.c
mod_autoindex.c
mod_dir.c
mod_cgi.c
mod_asis.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_access.c
mod_auth.c
mod_so.c
mod_setenvif.c
suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec

 ConfigurationファイルにAddModuleを記述したり、Configureスクリプト実行の際に--enable-moduleオプションで指定したにも関わらず、該当のモジュールが組み込まれていないようであれば、コンパイル時の設定に問題があったと思われる。

 ちなみに、httpdコマンドを「-l」オプションを付けて実行しても、ConfigurationファイルにShareModuleを記述したり、configureコマンドの実行時に--share-moduleオプションを指定したものは、モジュールが表示されない。DSOとして組み込めるように指定したモジュールは、mod_soモジュールによって後から動的に組み込まれるため、後述する環境設定ファイル(httpd.conf)によって指定しなければならない。これにより、ShareModuleや--share-moduleオプションで指定したモジュールについては表示されなくても問題はないのだ。

PREV 11/14 NEXT