Mac OS X 上で PHP と MySQL を動かす

0. はじめに

 PHP とデータベースソフトを連動させて何かをする、というのは最近流行のようで、あちこちで記事を見かけるようになった。Mac OS X Server ではこのあたりが標準でついてくるみたい (?) だけど、Server でない OS X でも手間を惜しまなければちゃんと動かすことができる。遊び半分でやってみたのだがなかなか面白かったので、忘れないようにメモしておこうと思う。

 作業環境は、Mac OS 10.1.2 + Developer Tools (December 2001)。例によって Terminal 操作が必要なのでそのつもりで。コンパイル済みのバイナリをインストールする、という手もあるんだけど、まだ Mac OS X 上の UNIX 系ツールのバイナリインストールはいま一つこなれてないかな?という気がするので、今回は全部ソースからコンパイルしてみる。

1. MySQL を動かす

 先に MySQL をインストールする。MySQL を使わないときはとばして 2. に行ってよい。

(1) MySQL 専用ユーザーを作る

 MySQL を走らせる専用のユーザーを作っておく。

(2) MySQL のダウンロード

 MySQL のサイトからダウンロードする。2002/1/1 時点での最新版は 3.23.47 だった。StuffIt Expander または tar で解凍して、Terminal 上でそのディレクトリに移動しておく。

(3) MySQL のビルド

./configure --mandir=/usr/local/share/man --with-innodb --with-charset=utf-8 --with-mysqld-user=mysql make sudo make install

(4) MySQL のセットアップ

(5) Mac OS X 起動時に自動的に MySQL を立ち上げる方法

2. PHP を動かす

(1) PHP のダウンロード

 PHP のサイトからダウンロードする。僕が試したときは最新版は 4.1.1 だったのだが、これは Mac OS X 用に修正するのが難しい。少し古い 4.0.6 をとって来る。解凍して (StuffIt Expander または tar xvfz php-4.0.6.tar.gz) php-4.0.6 というディレクトリができたら、Terminal 上でそこに cd しておく。

(2) PHP のビルド

 最初にこのディレクトリ中にある ltconfig というファイルを次のように書き換える。diff の出力なんだけどおわかりかな? - で始まる行を消して + で始まる行を挿入する、という意味ね。+ の行が長いので折り返してあるが本当は1行に書くこと。

diff -Naur ltconfig.orig ltconfig --- ltconfig.orig Tue Jan 1 23:25:52 2002 +++ ltconfig Tue Jan 1 23:26:53 2002 @@ -1454,7 +1454,7 @@ hardcode_libdir_separator=: ;; rhapsody*|darwin*) - archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts' + archive_cmds='$CC -force_flat_namespace -bundle -undefined suppress \ -o $lib $libobjs $deplibs $linkopts' hardcode_libdir_flags_spec='-L$libdir' hardcode_direct=yes hardcode_shlibpath_var=no

 あとは手順通り。

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man \ --with-apxs --with-zlib --disable-pear --with-mysql=/usr/local make sudo make install

 ./configure の行も長いので折り返してあるが1行で書く。MySQL を使わないときは最後の --with-mysql=/usr/local は不要。

(3) Apache の設定

 /etc/httpd/httpd.conf を開いて(sudo vi /etc/httpd/httpd.conf)、次の2行を探し出し、先頭の '#' をとる。

# AddType application/x-httpd-php .php # AddType application/x-httpd-php-source .phps

 これをやるとアップデートの時に Web 共有がうまく動かなくなるかも知れません。/etc/httpd/httpd.conf の書き換えは十分注意してください。

 ちょっと横道にそれるけど、apache の設定を書き換えたついでに .htaccess が通るように設定しておきましょうか。各ユーザー用の設定ファイルが /etc/httpd/users/you.confyou はログインユーザー名)にあるから、それを書き換えておく。

<Directory "/Users/you/Sites/"> Options Indexes MultiViews AllowOverride AuthConfig Limit # もとは AllowOverride None になっているはず Order allow,deny Allow from all </Directory>

(4) PHP のテスト

 これで PHP が apache と連動して動いてくれるはず。テストしてみよう。次の1行だけ書いたファイルを /Users/you/Sites/ の中に phpinfo.php という名前でセーブする。

<?php phpinfo(); ?>

 ブラウザで http://localhost/~you/phpinfo.php にアクセスすると、PHP に関する情報が表示される。なかなか感動的でしょう。

 それから、MySQL を使うのなら phpMyAdmin をダウンロードしてインストールしておくとたいへん便利。ドキュメントは英語だが、phpMyAdmin 自体は日本語にもちゃんと対応している。ただし、HTTP が通っていればどこからでもデータベースをいじれてしまうので、phpMyAdmin がおいてあるディレクトリにはきちんとアクセス制限をかけておいた方がいい。.htaccess が有効になるように設定したのはこのため。深慮遠謀でしょう。なんて威張るほどのことじゃないか。

3. 参考にしたサイトなど

日本 MySQL ユーザ会
日本 MySQL ユーザ会 (MyNA) の公式サイト。MySQL はマイナーだから "MyNA"、なんて冗談もあるようで。確かに PostgreSQL の方が名前を聞く機会は多い気がするけどね。
日本 PHP ユーザ会
日本 PHP ユーザ会の公式サイト。
PHP 日本語ページ
廣川類さんのサイト。「PHP4 徹底攻略」の PDF 版が公開されている! なんとすばらしい。ただし、データベースとの連動は主に PostgreSQL について書かれている。
PHP Dream
ここのサンプルスクリプトはわかりやすく、かつ役にたつ。
PHP on Mac OS X
"Web Development and Mac OS X" シリーズの一環として PHP のインストールが紹介されている(英語)。
Building PHP and MySQL on Mac OS X
PHP, MySQL のインストールを図入りで丁寧に説明してある(英語)。
Developer Shed: Building Apache, MySQL, and PHP on Mac OS X
これもとてもよい記事(英語)。