2009年1月30日金曜日

MacPortsのApacheでVirtualHost

とりあえず、MacOS XデフォルトのApacheで設定したVirtualHostの設定ファイルとMacPortsのApacheの設定ファイルを比較してみる。

% diff /opt/local/apache2/conf/extra/httpd-vhosts.conf /etc/apache2/extra/httpd-vhosts.conf

見たところ、自分が追加したVirtualHostの設定以外は違いが無さそうなので、採用。オリジナルをバックアップして、設定ファイルをコピーする。更に、メインの設定ファイルhttpd.confも比較してみる。

% diff /opt/local/apache2/conf/httpd.conf /etc/apache2/httpd.conf

こちらは、DSOモジュールへのパスなどの違いから沢山の差分が表示されるが、肝は恐らくIncludeディレクティブの部分かと。

% diff /opt/local/apache2/conf/httpd.conf /etc/apache2/httpd.conf | grep Include
< #Include conf/extra/httpd-mpm.conf
> Include /private/etc/apache2/extra/httpd-mpm.conf
< #Include conf/extra/httpd-multilang-errordoc.conf
> #Include /private/etc/apache2/extra/httpd-multilang-errordoc.conf
< #Include conf/extra/httpd-autoindex.conf
> Include /private/etc/apache2/extra/httpd-autoindex.conf
< #Include conf/extra/httpd-languages.conf
> Include /private/etc/apache2/extra/httpd-languages.conf
< #Include conf/extra/httpd-userdir.conf
> Include /private/etc/apache2/extra/httpd-userdir.conf
< #Include conf/extra/httpd-info.conf
> #Include /private/etc/apache2/extra/httpd-info.conf
< #Include conf/extra/httpd-vhosts.conf
> Include /private/etc/apache2/extra/httpd-vhosts.conf
< #Include conf/extra/httpd-manual.conf
> Include /private/etc/apache2/extra/httpd-manual.conf
< #Include conf/extra/httpd-dav.conf
> #Include /private/etc/apache2/extra/httpd-dav.conf
< #Include conf/extra/httpd-default.conf
> #Include /private/etc/apache2/extra/httpd-default.conf
< #Include conf/extra/httpd-ssl.conf
> #Include /private/etc/apache2/extra/httpd-ssl.conf
> Include /private/etc/apache2/other/*.conf

色々と違うなあ。。。httpd-vhostsとhttpd-manualについては自分でコメントアウトを外したから良いとして、httpd-mpmとhttpd-autoindex、httpd-languages、httpd-userdir辺りがMacOS XデフォルトのApacheではアクティブになってますな。後は、最後のother/*.confのところか。まぁ、MacPortsのApacheにはotherというディレクトリがそもそも存在しないですからね。この辺りをMacPorts版Apacheにも反映する事にします。

とりあえず、MacOS XデフォルトのApacheを止めます。

% /usr/sbin/apachectl stop

更に、MacPortsのApacheの設定ファイルをテストします。

% /opt/local/apache2/bin/apachectl configtest
Syntax OK

次に、PHP5用のmod_phpの設定をチェックします。設定ファイルは/opt/local/apache2/conf/extras-conf/mod_php.confです。とりあえずデフォルトで良さそうです。あと、PHP絡みでメインの設定ファイルを修正します。

  1. DirectoryIndexにindex.phpを追加
  2. Include conf/extras-conf/mod_php.confを最後尾に追加

PHPに関してはPHP自体の設定も必要です。php.iniファイルがありませんので、サンプルからコピーします。

% cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini

PHPの設定で変更する箇所は以下の通り。

short_open_tag = Off (デフォルトのOnから変更)
default_charset = "utf-8" (デフォルトの"iso-8859-1"から変更)
mbstring.language = Japanese (コメントアウトされているので先頭の";"を削除)
mbstring.internal_encoding = utf-8 (コメントアウトを解除しデフォルトの"EUC-JP"から変更)

じゃあ、Apacheを起動しますか。

% /opt/local/apache2/bin/apachectl start
% netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
(snip)
tcp46 0 0 *.http *.* LISTEN
(snip)

ちゃんと80番ポート(http)をバインドしてますね。良さそうです。最後に、MacOS Xデフォルトではユーザ毎に保持されている設定ファイル/etc/apache2/users/.confの記述を移植します。

0 件のコメント: