CentOS4.5で Apache2.2 + PHP5.2 [2]

続き。
Apache2.2をソースからコンパイルすることに。

# yum remove httpd*
=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Removing:
 httpd                   i386       2.0.63-2.el4s1.centos.2  installed         2.5 M
Removing for dependencies:
 httpd-devel             i386       2.0.63-2.el4s1.centos.2  installed         476 k
 httpd-manual            i386       2.0.63-2.el4s1.centos.2  installed         7.8 M
 mod_auth_mysql          i386       1:2.6.1-2.2      installed          27 k
 mod_auth_pgsql          i386       2.0.3-2.el4s1.2  installed          53 k
 mod_authz_ldap          i386       0.26-2.1         installed         195 k
 mod_perl                i386       1.99_16-4.centos4  installed         3.7 M
 mod_python              i386       3.1.3-5.1        installed         1.8 M
 mod_ssl                 i386       1:2.0.63-2.el4s1.centos.2  installed         165 k
 php                     i386       5.1.6-3.el4s1.10  installed         2.7 M
 php-pear                noarch     1:1.4.11-1.el4s1.1  installed         1.8 M
 phpmyadmin              noarch     2.11.9.3-1.el5.rf  installed          13 M
 system-config-httpd     noarch     5:1.3.1-1        installed         1.6 M
 webalizer               i386       2.01_10-25       installed         263 k

ええい、やっちまえ!・・・で、さっくり削除。

# wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.11.tar.gz
# tar zxvf httpd-2.2.11.tar.gz
# cd httpd-2.2.11
# ./configure --prefix=/usr/local/httpd \
              --with-ldap
              --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache"
...
# make
...
# checkinstall
...
**********************************************************************

 Done. The new package has been saved to

 /usr/src/redhat/RPMS/i386/httpd-2.2.11-1.i386.rpm
 You can install it in your system anytime using:

      rpm -i httpd-2.2.11-1.i386.rpm

**********************************************************************

おし、いけた。

# rpm -i --force /usr/src/redhat/RPMS/i386/httpd-2.2.11-1.i386.rpm
# cd /usr/local/httpd/
# ls
bin    cgi-bin  error   httpd_install.txt  include  logs  manual
build  conf     htdocs  icons              lib      man   modules

# ls modules/
httpd.exp               mod_authz_owner.so   mod_ext_filter.so    mod_proxy_ajp.so
mod_actions.so          mod_authz_user.so    mod_file_cache.so    mod_proxy_balancer.so
mod_alias.so            mod_autoindex.so     mod_filter.so        mod_proxy_connect.so
mod_asis.so             mod_cache.so         mod_headers.so       mod_proxy_ftp.so
mod_auth_basic.so       mod_cern_meta.so     mod_ident.so         mod_proxy_http.so
mod_auth_digest.so      mod_cgi.so           mod_imagemap.so      mod_rewrite.so
mod_authn_alias.so      mod_charset_lite.so  mod_include.so       mod_setenvif.so
mod_authn_anon.so       mod_dav.so           mod_info.so          mod_speling.so
mod_authn_dbd.so        mod_dav_fs.so        mod_ldap.so          mod_ssl.so
mod_authn_dbm.so        mod_dav_lock.so      mod_log_config.so    mod_status.so
mod_authn_default.so    mod_dbd.so           mod_log_forensic.so  mod_substitute.so
mod_authn_file.so       mod_deflate.so       mod_logio.so         mod_unique_id.so
mod_authnz_ldap.so      mod_dir.so           mod_mem_cache.so     mod_userdir.so
mod_authz_dbm.so        mod_disk_cache.so    mod_mime.so          mod_usertrack.so
mod_authz_default.so    mod_dumpio.so        mod_mime_magic.so    mod_version.so
mod_authz_groupfile.so  mod_env.so           mod_negotiation.so   mod_vhost_alias.so
mod_authz_host.so       mod_expires.so       mod_proxy.so

ステキデス。
次にhttpd.confの設定。
2.0系はhttpd.confにUserDirの設定があったけど、2.2系はconf/extra/httpd-userdir.conf に移動した(というか、ファイルが分割された)。

AliasMatch ^/([^/]+)(.*) /home/$1/public_html/$2
<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews FollowSymLinks ExecCGI
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
DirectorySlash On
</Directory>

ユーザディレクトリの設定を有効にするには、conf/httpd.confの

# User home directories
# Include conf/extra/httpd-userdir.conf

のコメントを外して有効にする必要あり。
さて実行。

# cd bin
# ./apachectl start
Invalid command "Order", perhaps misspelled or defined by a module not included in the server configuration

そういえばモジュールの読み込み設定なんもやってない。
こっちもとりあえず全部(?)入り。
ちなみにmod_accessは廃止されて、mod_authz_host.soになったんだそうだ。

LoadModule authz_host_module modules/mod_authz_host.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_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 proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so

これでいいはず・・・!

# bin/apachectl start

動いた動いた。
続きは次回。