Apache1.3 から Apache2.0 へ移行する際、設定内容を引き継ぐため、必要な内容の抽出を行ないます。基本的に、ここは一般的な内容よりも、備忘録としての意味合いが強いです。
Apache は、モジュールを追加することで、さまざまな機能拡張ができるようになっています。現在組み込まれているモジュールは、-l で確認できます。
[root@pokota root]# httpd -l Compiled-in modules: http_core.c mod_so.c suexec: disabled; invalid wrapper /usr/sbin/suexec
mod_so がある場合、動的モジュールがサポートされています。詳しくは次節を参照してください。
httpd.conf をみて、Load_Module されているモジュールを確認します。うちでは、後から追加したモジュールとして、下記のものがありました。厳密に言うと、ディストリビューションで既に組み込まれていたものがあるので、明示的に自分で追加していないものもあります。
その他の動的モジュールについても、一応 Load_Module の一覧を掲載しておきます。
LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule env_module modules/mod_env.so LoadModule config_log_module modules/mod_log_config.so LoadModule agent_log_module modules/mod_log_agent.so LoadModule referer_log_module modules/mod_log_referer.so #LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule status_module modules/mod_status.so LoadModule info_module modules/mod_info.so LoadModule includes_module modules/mod_include.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule dir_module modules/mod_dir.so LoadModule cgi_module modules/mod_cgi.so LoadModule asis_module modules/mod_asis.so LoadModule imap_module modules/mod_imap.so LoadModule action_module modules/mod_actions.so #LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule anon_auth_module modules/mod_auth_anon.so LoadModule db_auth_module modules/mod_auth_db.so #LoadModule dbm_auth_module modules/mod_auth_dbm.so #LoadModule auth_ldap_module modules/mod_auth_ldap.so #LoadModule digest_module modules/mod_digest.so #LoadModule proxy_module modules/libproxy.so #LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so #LoadModule usertrack_module modules/mod_usertrack.so #LoadModule example_module modules/mod_example.so #LoadModule unique_id_module modules/mod_unique_id.so LoadModule setenvif_module modules/mod_setenvif.so #LoadModule bandwidth_module modules/mod_bandwidth.so #LoadModule put_module modules/mod_put.so #LoadModule throttle_module modules/mod_throttle.so #LoadModule define_module modules/mod_define.so LoadModule jk2_module modules/mod_jk2.so <IfDefine HAVE_PERL> LoadModule perl_module modules/libperl.so </IfDefine> <IfDefine HAVE_PHP> LoadModule php_module modules/mod_php.so </IfDefine> <IfDefine HAVE_PHP3> LoadModule php3_module modules/libphp3.so </IfDefine> <IfDefine HAVE_PHP4> LoadModule php4_module modules/libphp4.so </IfDefine> <IfDefine HAVE_DAV> LoadModule dav_module modules/libdav.so </IfDefine> <IfDefine HAVE_ROAMING> LoadModule roaming_module modules/mod_roaming.so </IfDefine> <IfDefine HAVE_SSL> LoadModule ssl_module modules/libssl.so </IfDefine>
基本ですが、httpd.conf 内の各種設定です。
まずはサーバ名の設定です。
ServerName omoshiro-joho.com
ドキュメントルートの設定です。
DocumentRoot /home/httpd
名前変換を行なうように設定します。ここが On になっていないと、IPアドレスの逆引きができずに、問題が起こる可能性があります。
HostnameLookups On
PUT メソッドと DELETE メソッドを使うための設定です。両メソッドは、Firefox のブックマーク同期に使っています。
# For PUT,DELETE Add 2005/03/19 <Directory /home/httpd/hoge/page> Script PUT /hoge/put Script DELETE /hoge/del </Directory>
エイリアスの指定を行ないます。これをセキュリティ関係(所定階層のアクセス排除など)に利用している場合は、忘れず設定する必要があります。
ScriptAlias /hoge/cgi-bin/ /home/httpd/hoge/cgi-bin/ Alias /hoge/ /home/httpd/hoge/html/
CGI および SSI の使用を可能にしておきます。
# # To use CGI scripts: # AddHandler cgi-script .cgi # # To use server-parsed HTML files # AddType text/html .shtml AddHandler server-parsed .shtml
バーチャルホストの指定を行ないます。
NameVirtualHost * <VirtualHost *> ServerName omoshiro-joho.com ServerAdmin root@localhost DocumentRoot /home/httpd </VirtualHost> <VirtualHost *> ServerName another-domain.com ServerAdmin root@localhost DocumentRoot /home/httpd/hoge </VirtualHost>
Directory ディレクティブで、トップディレクトリの各属性を決定します。全てのディレクトリで CGI の実行などを許可しています。AllowOverride は All で、必要な場合は全て下位ディレクトリの .htaccess ファイルで対応するようにしています。
Options Includes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all