そう言えば、MacPortsで入れたMySQLとApacheを自動起動する様に設定するのを忘れていた。
MacPorts で Apache をインストール
を参考にさせて頂き、自動起動を設定した。
% launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
% launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
これでMySQLとApacheの自動起動が設定できた。かつ、サーバ起動もこの時点で完了。
簡単だ。
2009年2月20日金曜日
2009年1月30日金曜日
PHPスクリプトの出力が文字化け
EUC-JPで書かれたPHPスクリプトの出力が文字化けしました。mbstring関係の設定をいじっても効果がありません。ApacheのAddDefaultCharsetディレクティブも記述されていないし、何でだろうと思って色々と調べたら分かりました。/opt/local/etc/php.iniのdefault_charset設定が悪さをしていた模様です。
default_charset = "utf-8"
という行をコメントアウトして文字化けは解消しました。
default_charset = "utf-8"
という行をコメントアウトして文字化けは解消しました。
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絡みでメインの設定ファイルを修正します。
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の記述を移植します。
% 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絡みでメインの設定ファイルを修正します。
- DirectoryIndexにindex.phpを追加
- 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/
2009年1月29日木曜日
ApacheでVirtualHost
プライベートも含めて幾つかのウェブサイトを開発しているので、開発機のMacBook君にVirtualHostを設定することに。
以下、備忘録です。
元々のVirtualHost設定ファイルには"CustomLog /path/to/log common"みたいな記述があるが、これがチェックで引っ掛かる。ここは"TransferLog /path/to/log"と書き直して対応。最後の"common"が残らない様に注意。ここの記述って、Apacheのバージョンによって違うのかな??
とりあえずこれでVirtualHostの設定が完了。
次はPostgreSQL対応のPHP5を入れます。
以下、備忘録です。
- まずhostsファイルを編集して必要なドメインを登録
/etc/hostsに"127.0.0.1 hoge.com"みたいな記述を追加 - 次にApacheのVirtualHost用設定ファイルを編集
/etc/apache2/extra/httpd-vhosts.confを編集 - 更にApacheのVirtualHostを有効化
/etc/apache2/httpd.conf内のhttpd-vhosts.confに関するIncludeディレクティブを有効化 - 設定ファイルのチェック
% apachectl configtest - そしてApacheを再起動
% apachectl restart
元々のVirtualHost設定ファイルには"CustomLog /path/to/log common"みたいな記述があるが、これがチェックで引っ掛かる。ここは"TransferLog /path/to/log"と書き直して対応。最後の"common"が残らない様に注意。ここの記述って、Apacheのバージョンによって違うのかな??
とりあえずこれでVirtualHostの設定が完了。
次はPostgreSQL対応のPHP5を入れます。
2009年1月28日水曜日
MacOS XのPHP
いわゆるLAMP (Linux, Apache, MySQL, and PHP) ならぬMAMP (MacOS X, Apache, MySQL, and PHP) な環境でソフト開発をしていたんですが、今度はMySQLの代わりにPostgreSQLを使うことになり、早速MacOS X用のインストーラを落としてきて入れました。
ところが、何とMacOS XデフォルトのPHP5はPostgreSQLに対応していません。phpinfo()で見ると、ビルド時のconfigureオプションでPostgreSQLを有効にしていないのです。
何たる割り切り・・・orz
というわけで、何とかしてMySQLもPostgreSQLも使えるPHP5を導入しなければいけなくなりました。MA(M|P)Pって感じです。(←分かり辛っ)
ところが、何とMacOS XデフォルトのPHP5はPos
何たる割り切り・・・orz
というわけで、何とかしてMyS
登録:
投稿 (Atom)