[FreeBSD] mod_proxyなどをインストールする方法

環境

この記事の内容は、FreeBSD 4.8-RELEASE, Apache 2.2.4で確認しました。

問題点

mod_proxyやmod_suexecなどをインストールしたいが、該当するportsが見当たりません。

解決方法

makeのときにWITH_name_MODULESオプションをつけます(詳細を参照してください)。

詳細

/usr/ports/www/apache22でmake show-optionsすると、モジュールのインストール方法が表示されます。

% make show-options
 Available knobs:
 By default, modules are compiled as dynamically loadable modules (DSO).

 Modules knobs philosophy:
 Modules are split in categories, "make show-categories" shows you
 which modules they contain. You can enable/disable/customize a category:
 - To enable a category: WITH__MODULES=yes
                            [WITH_PROXY_MODULES=yes]
 - To disable a category: WITHOUT__MODULES=yes
                            [WITHOUT_DAV_MODULES=yes]
 - To customize a category: WITH_CUSTOM_
                            [WITH_CUSTOM_PROXY="proxy proxy_http"]

   Apache-related
      WITH_MPM:                 prefork (default)
                                worker
                                event
                                itk
      WITH_HTTP_PORT:           default: 80
      WITH_LDAP:                Enable LDAP support (mod_auth_ldap) (implies WIT
H_LDAP_MODULES)
      WITH_(MYSQL|PGSQL|SQLITE): Enable SQL backend for dbd and apr_dbd.
                                 When MySQL is chosen, threads are enabled.
      WITHOUT_V4MAPPED
      WITH_IPV6_V6ONLY:         Don't allow IPv6 sockets to handle IPv4
                                connections
      WITHOUT_SSL:              Disable SSL support
      WITH_THREADS:             Enable threads support !! USE IT WITH CARE !!
      WITH_DBM:                 Choose your DBM: bdb (Berkeley DB), gdbm or
                                ndbm (default)
          WITH_BERKELEYDB:      Choose your BerkeleyDB version: db2, db3,
                                db4, db41, db42, db43, db44 or FreeBSD
                                (1.85, default)
      WITH_STATIC_SUPPORT:      Build statically linked support binaries
      WITH_STATIC_APACHE:       Build a static version of httpd (implies
                                WITH_STATIC_MODULES)
      WITH_ALL_STATIC_MODULES:  All modules will be statically linked.
      WITH_STATIC_MODULES:      List of modules to build modules statics
                                (usefull for slave ports)
                                (They must be already enabled (i.e.
                                WITH_MODULES or with default configuration
                                use 'make show-modules', to check if they are
                                enabled)   
      WITH_MODULES:             List of modules you choose
      WITHOUT_MODULES:          Disable selected modules
      WITH_SUEXEC:              Enable suExec support
            SUEXEC_DOCROOT:     SuExec root directory
            SUEXEC_USERDIR:     User subdirectory (default public_html)
            SUEXEC_SAFEPATH:    Set the safepath
            SUEXEC_LOGFILE:     Set log file for suexec (default: /var/log/httpd-suexec.log)
            SUEXEC_UIDMIN:      Minimal allowed UID (default 1000)
            SUEXEC_GIDMIN:      Minimal allowed GID (default 1000)
            SUEXEC_CALLER:      User allowed to call SuExec (default
                                ${WWWOWN} (www))
            SUEXEC_UMASK:       Defines umask for suexec'd process(default:
                                unset)
        WITH_DEBUG:               Build a debug versoin of apache (set CFLAGS
                                to "-O0 -g -ggdb3" or ${DEBUG_FLAGS} and
                                defines WITH_EXCEPTION_HOOK too)
      WITH_EXCEPTION_HOOK:      Enable fatal exception hook

  Optionnal patches:
      WITH_EXPERIMENTAL_PATCHES Add performance patches (generally backported
                                from apr/httpd CVS)

 Available make targets:
      show-options:             prints this message
      show-modules:             prints list of available modules
      show-categories:          prints list of modules sorted by category

 Examples:
      make WITH_STATIC_MODULES="ssl rewrite include" WITH_EXPERIMENTAL_MODULES=yes \
           WITH_CUSTOM_AUTH="auth auth_dbm"
      make WITHOUT_MODULES="access speling status" WITH_PROXY_MODULES=yes
      make WITH_MODULES="include rewrite auth"
      Note: If you define your custom options in /etc/make.conf, don't forget
            to do not use quotes.

すなわち、インストールしたいモジュールがあるカテゴリについて、WITH_category_MODULESオプションをつけます。どのモジュールがどのカテゴリに含まれるかは、make show-categoriesすれば表示されます。

% make show-categories
AUTH contains these modules:
  auth_basic auth_digest
AUTHN contains these modules:
  authn_file authn_dbd authn_dbm authn_anon authn_default  authn_alias
AUTHZ contains these modules:
  authz_host authz_groupfile authz_user authz_dbm  authz_owner authz_default
CACHE contains these modules:
  cache disk_cache file_cache mem_cache
DAV contains these modules:
  dav dav_fs
EXPERIMENTAL contains these modules:
  bucketeer case_filter case_filter_in ext_filter charset_lite  log_forensic optional_hook_export optional_hook_import  optional_fn_import optional_fn_export
LDAP contains these modules:
  ldap authnz_ldap
MISC contains these modules:
  actions alias asis autoindex cern_meta  cgi charset_lite dbd deflate dir dumpio env expires  headers imagemap include info log_config logio mime  mime_magic negotiation rewrite setenvif speling status  unique_id userdir usertrack vhost_alias filter version
PROXY contains these modules:
  proxy proxy_connect proxy_ftp proxy_http proxy_ajp proxy_balancer
SSL contains these modules:
  ssl
SUEXEC contains these modules:
  suexec
THREADS contains these modules:
  cgid

すなわち、mod_proxyはPROXYカテゴリに、mod_suexecはSUEXECカテゴリにあることが分かります。

オプションをつけて有効になるモジュールを確認したいときは、確認したいオプションをつけてmake show-modulesします。例えば、何もオプションをつけないと以下のようになります。

% make show-modules
auth_basic: enabled (shared)
auth_digest: enabled (shared)
authn_file: enabled (shared)
authn_dbd: disabled
authn_dbm: enabled (shared)
authn_anon: enabled (shared)
authn_default: enabled (shared)
authn_alias: enabled (shared)
authz_host: enabled (shared)
authz_groupfile: enabled (shared)
authz_user: enabled (shared)
authz_dbm: enabled (shared)
authz_owner: enabled (shared)
authz_default: enabled (shared)
cache: enabled (shared)
disk_cache: enabled (shared)
file_cache: enabled (shared)
mem_cache: disabled
dav: enabled (shared)
dav_fs: enabled (shared)
bucketeer: disabled
case_filter: disabled
case_filter_in: disabled
ext_filter: disabled
charset_lite: enabled (shared)
log_forensic: disabled
optional_hook_export: disabled
optional_hook_import: disabled
optional_fn_import: disabled
optional_fn_export: disabled
ldap: disabled
authnz_ldap: disabled
actions: enabled (shared)
alias: enabled (shared)
asis: enabled (shared)
autoindex: enabled (shared)
cern_meta: enabled (shared)
cgi: enabled (shared)
charset_lite: enabled (shared)
dbd: disabled
deflate: enabled (shared)
dir: enabled (shared)
dumpio: enabled (shared)
env: enabled (shared)
expires: enabled (shared)
headers: enabled (shared)
imagemap: enabled (shared)
include: enabled (shared)
info: enabled (shared)
log_config: enabled (shared)
logio: enabled (shared)
mime: enabled (shared)
mime_magic: enabled (shared)
negotiation: enabled (shared)
rewrite: enabled (shared)
setenvif: enabled (shared)
speling: enabled (shared)
status: enabled (shared)
unique_id: enabled (shared)
userdir: enabled (shared)
usertrack: enabled (shared)
vhost_alias: enabled (shared)
filter: enabled (shared)
version: enabled (shared)
proxy: disabled
proxy_connect: disabled
proxy_ftp: disabled
proxy_http: disabled
proxy_ajp: disabled
proxy_balancer: disabled
ssl: enabled (shared)
suexec: disabled
cgid: disabled
auth_basic: enabled (shared)
auth_digest: enabled (shared)
authn_file: enabled (shared)
authn_dbd: disabled
authn_dbm: enabled (shared)
authn_anon: enabled (shared)
authn_default: enabled (shared)
authn_alias: enabled (shared)
authz_host: enabled (shared)
authz_groupfile: enabled (shared)
authz_user: enabled (shared)
authz_dbm: enabled (shared)
authz_owner: enabled (shared)
authz_default: enabled (shared)
cache: enabled (shared)
disk_cache: enabled (shared)
file_cache: enabled (shared)
mem_cache: disabled
dav: enabled (shared)
dav_fs: enabled (shared)
bucketeer: disabled
case_filter: disabled
case_filter_in: disabled
ext_filter: disabled
charset_lite: enabled (shared)
log_forensic: disabled
optional_hook_export: disabled
optional_hook_import: disabled
optional_fn_import: disabled
optional_fn_export: disabled
ldap: disabled
authnz_ldap: disabled
actions: enabled (shared)
alias: enabled (shared)
asis: enabled (shared)
autoindex: enabled (shared)
cern_meta: enabled (shared)
cgi: enabled (shared)
charset_lite: enabled (shared)
dbd: disabled
deflate: enabled (shared)
dir: enabled (shared)
dumpio: enabled (shared)
env: enabled (shared)
expires: enabled (shared)
headers: enabled (shared)
imagemap: enabled (shared)
include: enabled (shared)
info: enabled (shared)
log_config: enabled (shared)
logio: enabled (shared)
mime: enabled (shared)
mime_magic: enabled (shared)
negotiation: enabled (shared)
rewrite: enabled (shared)
setenvif: enabled (shared)
speling: enabled (shared)
status: enabled (shared)
unique_id: enabled (shared)
userdir: enabled (shared)
usertrack: enabled (shared)
vhost_alias: enabled (shared)
filter: enabled (shared)
version: enabled (shared)
proxy: disabled
proxy_connect: disabled
proxy_ftp: disabled
proxy_http: disabled
proxy_ajp: disabled
proxy_balancer: disabled
ssl: enabled (shared)
suexec: disabled
cgid: disabled

WITH_PROXY_MODULESオプションとWITH_SUEXEC_MODULESオプションをつけると、以下のように、"enabled"になります(変わった箇所だけ抜き出します)。

% make WITH_PROXY_MODULES=yes WITH_SUEXEC_MODULES=yes show-modules
:
proxy: enabled (shared)
proxy_connect: enabled (shared)
proxy_ftp: enabled (shared)
proxy_http: enabled (shared)
proxy_ajp: enabled (shared)
proxy_balancer: enabled (shared)
ssl: enabled (shared)
suexec: enabled (shared)
:

参考文献