Rhythm & Biology

Engineering, Science, et al.

macでXAMPP

1週間ほどwindows+xamppで開発してました。
しばらくはまたmacに戻ることになったので、今度はmacにxamppを導入してみました。そこでちょっとハマったものをメモ。


XAMPP for Mac OS X
http://www.apachefriends.org/jp/xampp-macosx.html
今回は1.7.3を使いました。残念ながら、mac版は1年近く更新されていません。windows版と違い、MySQLも5.5ではなく5.1です。ちゃんとしたものを作るなら、環境構築からやり直すべきですね。ちなみにMAMPという似たものもあるようですが、こちらもmysqlのバージョンが古かったりします。


さて、xamppを/Application/XAMPPにおいて、xampp controlを動かすと、さくっとapachemysqlを動かせます。windows版と違ってcontrolの画面が質素ですね。


apacheを起動した状態でlocalhostにアクセスすると、localhost/xamppにリダイレクトされて設定画面が表示されます。これで正常に動いているのが確認できました。
また、localhost/~user(私の場合ならlocalhost/~mythosil)にアクセスすると、自分用のサイトが見られます。この時には、~/Sitesに置いてあるファイルが読まれます。今回はこちらで開発をやっていきます。


まずは~/Sites/index.phpをつくって、以下のように記述します。

<?php
echo "Hello World";

試しにlocalhost/~mythosil/index.phpにアクセスすると、Hello Worldが表示されます。


次に、存在しないファイルにアクセスしようとした場合、すべてindex.phpを返すようにしてみます。~/Sites/.htaccessを作って、以下のように記述します。

<IfModule mod_rewrite.c>
  RewriteEngin On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

では、localhost/~mythosil/aaaaaにアクセスしてみましょう。


うごいてねー!!


apacheのエラーログ(/Application/XAMPP/xamppfiles/logs/error_log)を見てみましょう。

[Sat Apr 02 12:39:07 2011] [error] [client ::1] File does not exist: /Applications/XAMPP/xamppfiles/htdocs/Users

なんか変なとこからファイルを読もうとしてます。ただ、なんとなく原因が分かったので、下のコマンドを打ってから再度アクセスしてみました。

sudo ln -s ~/Sites /Application/XAMPP/xamppfiles/htdocs/Users

やったね!


あまり賢くない解決手法な気がするので、apacheの設定を調べてみます。普段使ってるnginxと違って、apacheは覚えることが多い気がします。