"MAMP" に直接 "DBD::MySQL" をカマせる方法を書いたとたんに、 MAMP のサイトから、フルバージョンの MySQL がインストールされている MAMP のリンクが消えてしまったものだから、コメントをいただいている。そろそろ SnowLeopard も発表されることだし、ここで OS X 10.5 に構築する開発環境(風ブログバージョン)を見直してまとめておきたいと思う。長いぞ〜
なるべく汎用性が高くて、かつ賞味期限も長いと思われる手順をまとめておくことにする。 自分が OS X 10.5 に構築する開発環境(風ブログバージョン)は基本的には OS X 10.5 のうえに開発環境を組み上げておいて、さらに "MAMP" も使えるようにした二刀流である。したがって、OS X 10.5 Server にも使うことができるはずである。
また、OS X 10.5 には余計なものを入れないでおいて "MAMP" だけ使いたいんだ、というご意見はモットモなのだが、OS X 10.5 には、もとから余計な PHP やら DBI やらがインストールされているのだから、そのへんはいい加減(良い加減)に考えておいた方がいいと思う。
なお、本文中のリンク部分に関しては、変更されにくいものを選んではいるのだが、賞味期限が長いかどうかはわからないので、リンク先が消滅している場合には個々に対応をお願いしたい。
さ〜てと。
とにかく、なにはなくとも、"Xcode" および OS に付属している "X11" だけは、インストールしておくこと。
OS X 10.5 Server では 5.0.67 が使われており、MAMP 1.7.2 では 5.0.41 が使われている。 MySQL の現時点での最新バージョンは 5.0.77 である。開発環境として "MAMP" だけを主にお使いになる場合には、 "DBD::MySQL" のことを考えれば OS X 10.5 本体にも 5.0.41 をインストールしておきたいところである。ところが、 MySQL のホームページのアーカイブには、 OS X 10.5 で使える 5.0.41 は今のところ見当たらない。
OS X 10.5 Server で使われている 5.0.67 のファイルを使って "DBD::MySQL" のインストールを行っても "MAMP" から "DBD::MySQL" を問題なく使えるので、汎用性と開発環境としての安定性を充分考慮した結果、(風ブログバージョン)では、5.0.67 を使うことにする。
先の記事を参考に、必ず、32bit バージョンをインストールする。 MySQL Archives の Mac OS X のダウンロードから、 5.0.67 をさがして、Intel Mac の場合には、mysql-5.0.67-osx10.5-x86.dmg を、 PowerPC の場合には、mysql-5.0.67-osx10.5-powerpc.dmg をダウンロードする。
そして、この図と、この図を参考に、コントロールパネルも含めインストールしておく。
Mac OS X server 10.5 Leopard を使って、MovableType を動かす場合には、先の記事を参考にして、"DBD::MySQL" をインストールするために必要な、 MySQL の不足ファイルをインストールしておくこと。
画像関連のライブラリは、X11 をインストールしておけば必要なモノは概ねインストールされているのだが、どういったわけか、libjpeg だけはインストールされていない。というわけで、ダウンロード して、インストールしていく。これが第一の難関である。ちなみに、libjpeg は、間違ってコンパイルしてもエラーがでないままでインストールされてしまったりするから始末におえない。コメントも結構いただいている。特に 64bit のコンパイルの際に、一気に一行で入力する部分のトラブルが多いので、今回はちょっと工夫をしておきたい。
まず、必要なディレクトリを作っていく。必ずターミナルから、
としておく。次に、ダウンロードしたソースをデスクトップに展開して、先の記事に説明してあるように、ターミナルから、
と入力、最後の "半角スペース" および "." (ドット) も忘れないように。
sudo mkdir -p /usr/local/include
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/local/lib
sudo mkdir -p /usr/local/share/man/man1
cd Desktop/jpeg-6b
cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .
続けて、32bit ( PowerPC G4 および intel core solo ) の場合には、簡単に、
としてコンパイルするのだが、64bit ( PowerPC G5 および その他 intel Mac ) の場合には、長い一文を入力しなければならない。コメントをいただいた大半のトラブルはこの部分が原因である。
としてコンパイルするのだが、この部分をコピーしてそのままターミナルの画面にペーストしてくださってもよい。
さて、ここでターミナルをちょっと一休みする。この図を参考に、デスクトップの jpeg-6b フォルダを開き、makefile を探してお使いのテキストエディタで開き、その20行目、を
【 ImageMagick 】(参考記事)
./configure --enable-shared
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --enable-shared
mandir = $(prefix)/man/man$(manext)
mandir = $(prefix)/share/man/man$(manext)
に書き換えておく。
その後、ターミナルの画面から、
make test
としてテストをして、エラーが表示されなければ、
sudo make install
と入力して終了である。
ここでちょっと横道にそれておくのでおつきあいのほど。読み飛ばしていただいても実害はない。
manフォルダとは、各コマンドのオンラインマニュアルをおさめているフォルダで、man とは manual の意味である。さて、ここがまた問題なのであるが、manフォルダはどこにあろうとインストールはできてしまうし実害はない。しかし、Mac OS X は、manフォルダを /usr/local/share/man に置く仕様になっている。もしアップルが純正で搭載していたとしたらこうしてあるはず、という場所に、インストールをしていきたいものだ。manフォルダの中にはさらに、man1、man2 等、番号付きのフォルダがあって例えば、1= (一般ユーザのコマンド) 、2= (システムコール) 、3= (ライブラリ関数) 、4= (デバイス・デバイスドライバ) 、5= (デバイス・デバイスドライバ) 、6= (ゲーム) 、7= (その他) 、8= (管理者用のコマンド) 、9= (新しく追加されたマニュアル) 、ってな具合にまとめてあるのが通例になっている。やっぱりアップル仕様でまとめておいたほうがいいのだろう。そうしないとそこらじゅうに manフォルダができてしまって、 man、man、man 。。。。マンだらけになってしまう。いろいろな解説の中には、わざわざ新たに man ディレクトリを別の場所に作っておいてからインストールするようにしている解説もあるから、こういった解説を見てインストールされた方は本当に "マンだらけ" のはずである。
まずは、Apple-Darwin-Releases を見ていただきたい。ここから、現時点で最新のバージョン 10.5.6 にいってみよう。ここでは、10.5.6 に使われている各種ソースが提供されているのだが、アップル純正の PHP はその中の、"apache_mod_php-44.1" である。このページから、php-5.2.6.tar.bz2 をダウンロードしておく。これをもとにして、インストールしていくわけだが、全部をコンパイルしなおしてインストールするのではなく、GD の部分だけをインストールするだけでよい。さすが純正、Mac OS X server 10.5 をお使いの方は本当に助かるはずだ。もともとの本体をいじくる必要がないのだから。
例によってデスクトップに解凍したものとして、まず、ターミナルから
cd Desktop/php-5.2.6/ext/gd
としてから、
phpize
と、入力。
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
と、表示されるはずである。
次は、32bit ( PowerPC G4 および intel core solo ) の場合には、
./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6
と、一行で入力。
64bit ( PowerPC G5 および その他 intel Mac ) の場合には、長いけれど、これまた一行に続けて、
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6
と一行で入力。
ここでエラーになる場合は、100%、libjpeg のインストールが誤っている。なぜなら、他はすべてアップル純正環境だからである。 エラーが出たら、libjpeg のインストールをやり直す必要がある。
さて、エラーが出ずにコンパイルが完了したら、
make
すると、
Build complete. Don't forget to run 'make test'.
'make test'を忘れんなよ、と念を押してあるから、
make test
と入力、エラーがなければ、
sudo make install
これで、アップル純正の PHP に、GD ライブラリをくっつけることができる。
PHP を動作させるのに、php.ini というファイルを作ってやれば、PHP にどのように動作してほしいのか命令をだすことができる。ここに、GD ライブラリが追加されているという情報と、MySQL のソケットファイルの場所を記述して、PHP に教えてやらなければ正常に動作しない。
アップルは、/etc ディレクトリに、php.ini.default という見本を置いているから、これを使って、php.ini ファイルを作って、/etc ディレクトリに置いてやればよい。パーミッションの問題がからんでくるので、必ずターミナルから作る。
sudo cp /etc/php.ini.default /etc/php.ini
とすれば、内容は同じで名前が php.ini のファイルを作ることができる。
メニューの"移動"から、"フォルダへ移動"を選んで、/etc と入力して、先ほど作製した php.ini ファイルをさがす。以前の記事の、この図参照していただきたいのだが、メニューの"ファイル"から"情報を見る"を選び、"共有とアクセス権"に自分( 筆者の場合は FOXBAT )を加えて、読み書きができるように変更しよう。これで php.ini のファイルが書き換えられるようになる。
まずは、PHP が GD ライブラリを使えるようにしていこう。どこに書き加えてもいいのだが、この図のように
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613"
extension=gd.so
の2行を書き加える。これで、PHP が GD ライブラリを使えるようになる。
さて、Mac OS X server 10.5 ではもともと MySQL がインストールされていて PHP からアクセスできるようになっているために不要な操作なのだが、Mac OS X 10.5 では、あとから MySQL をインストールすることになるため、アップルが予定している PHP のアクセス場所に MySQL のソケットファイルがインストールされていないのである。したがって、正しいソケットファイルの位置を教えてやらなければ、PHP は MySQL に接続することができない。この図のように、760行目付近、
mysql.default_socket = /tmp/mysql.sock
と、書き加えておこう。これで、PHP が、MySQL にアクセス可能になる。
その他、Movable Type 等の開発をするのに、[mbstring] 関連もご自分の環境に合わせて書き換えておいた方がいいのだが、あとでゆっくり各自の環境に合わせて書き換えておいていただきたい。
蛇足ながら、ファイルを書き換えたあとで、"共有とアクセス権"から、自分を消して必ずそのファイルのパーミッションをもとどおりにしておこう。
【ココで一服 - 動作確認】
まず、先の記事を参考にしていただきたいのであるが、Mac OS X 10.5 で、Webサーバを起動するのは簡単である。システム環境設定の中にある "共有" で、"Web共有"のチェックをつければ、Apache が起動する。この段階でブラウザに
http://localhost/
と入力すれば、初期画面が表示されるはずである。
ところで、Webサーバである Apache の設定は、/etc の中にある"apache2" フォルダの中の "httpd.conf" に書かれているのであるが、標準仕様では PHP は使えない設定になっているので、これを書き換えて PHP が使えるようにしてやる必要がある。この図のように、"httpd.conf" を書き換えられるようにしてから、その中の114行目付近、
#LoadModule php5_module libexec/apache2/libphp5.so
を
LoadModule php5_module libexec/apache2/libphp5.so
と、この図のように、行頭の "#" をはずして保存しよう。そして、またまた蛇足ながら、ファイルを書き換えたあとでは、"共有とアクセス権"から自分を消して、必ずそのファイルのパーミッションをもとどおりにしておこう。
なお、 Mac OS X 10.5 server の場合は、サーバ管理から "Webサーバ" を選んで GUI で PHP を使えるように設定することが可能なはずである。
さて、Webサーバである Apache を再起動したら、先の記事を参考にして "phpinfo()" を表示させてみよう。今までの操作がうまくいっていれば、この図のように、GD ライブラリがちゃんと使えるようになっているのが確認できるはずである。
次に、MySQL の確認をしていくことにする。システム環境設定の MySQL コントロールパネルから、MySQL を起動しておこう。
まずは、phpMyAdmin をダウンロードする。
phpMyAdmin には、2.X 系列と、3.X 系列があるのだが、筆者は慣れ親しんだ 2.X 系列を使っている。ダウンロードしたら解凍し、フォルダの名前を "phpMyAdmin" に変えて、"ライブラリ"フォルダ内の、/Webserver/Documents/ に適当な名前のフォルダ(筆者の場合は、admin だが、tool 等、なんでもよい)を作って、そこに入れておく。筆者の場合であれば、
http://localhost/admin/phpMyAdmin/
と入力すれば、この図のような画面が表示されるはずである。
この画面が表示されたということは、MySQL がちゃんと動いていて、かつ、 PHP から接続できているということだ。この画面が表示されない場合や、エラーが表示される場合には、MySQL にパスワードを設定したりしていないか、"php.ini" ファイルはちゃんとしているか、もう一度はじめからご確認いただきたい。
MySQL のユーザー名やらパスワードは、ゆっくり phpMyAdmin から設定すればよい。また phpMyAdmin から設定する場合でも、いきなり"root"にパスワードを設定しない方がいい。そのとたんに phpMyAdmin から MySQL に接続できなくなる。
まずは、 phpMyAdmin の "特権" から、"root" と同じ権限を持つ "XXXX" というユーザーを作って、パスワード "YYYYY" 設定しておこう。
その後、先ほど【 PHP.ini 】で "php.ini.default" から "php.ini" を複製したのと同様の手順で "phpMyAdmin" フォルダの中の "config.default.php" を複製して "config.inc.php" というファイルを作り、それにいろいろな条件を書き込んでやることになる。72行目か73行目あたりに下のような部分があるので、ここに先ほど設定した、ユーザー名とパスワードを書き込んで保存してやればよい。
$cfg['Servers'][$i]['user'] = 'XXXX'; // MySQL user
$cfg['Servers'][$i]['password'] = 'YYYYY'; // MySQL password (only needed
// with 'config' auth_type)
これで、ブラウザから再び "phpMyAdmin" にアクセスをすると、ちゃんと "MySQL" に接続できるはずである。ちなみに、"root" にパスワード "ZZZZ" を設定した場合には、"config.inc.php" を
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = 'ZZZZ'; // MySQL password (only needed
// with 'config' auth_type)
として、保存しておけばよい。
PHP には関係のないモジュールではあるのだが、 DBI モジュールと DBD モジュールは、データーベースを CGI から操作するのになくてはならないモジュールである。Mac OS X 10.5 の場合は、DBI についてはもとから持っているようで 1.5 系列のものがインストールされているようだが、DBD については、SQLite バージョンはインストールされているものの、MySQL バージョンはインストールされていない。
現時点での最新の DBI モジュールは、1.607 である。Mac OS X 10.5 の DBI は古いので、最新のものをインストールしておこう。ダウンロードしたら、例によってデスクトップに解凍し、ターミナルから、
cd Desktop/DBI-1.607
perl Makefile.PL
make
make test
sudo make install
と、順番に入力していけば、すんなりインストールされるはずである。
それじゃあ、DBD::MySQL も、とやって、泥沼へ突入である。【 libjpeg 】に続く第二の難関である。 DBD::MySQL をインストールするためには、MySQL がどのようにインストールされているのかが書かれている "mysql_config" と、"MySQL のいくつかのライブラリとファイル" が必要なのだが、動作に必要なものだけがインストールされた MySQL には、この "MySQL のいくつかのライブラリとファイル" がインストールされていないのである。この辺の事情は、Mac OS X 10.5 server についても MAMP についても同じである。
自分で Mac OS X 10.5 に MySQL をパッケージからインストールした場合には、例外的にフルバージョンの MySQL がインストールされるために、 DBD::MySQL をインストールするために必要な "MySQL のいくつかのライブラリとファイル" がちゃんと入ってくる。いろいろなやり方があるようだが、どこかに適当なディレクトリを作り、あらかじめ必要な MySQL のライブラリをコピーしてもってきておくことにしよう。
ターミナルから、
sudo mkdir /tmp/mysql-lib
cd /usr/local/mysql/lib
sudo cp *.a /tmp/mysql-lib
として、/tmp に、"mysql-lib" というフォルダ(ディレクトリ)を作り、図のように必要なモノをもってきておく。
さて、DBD::MySQL をインストールしていこう。あらかじめ注意しておかなければいけないことは、MySQL を起動しておくことと、MySQL のユーザー名とパスワードを準備しておく必要があるということだ。
DBD::MySQL モジュールをダウンロードして、デスクトップに解凍する。現時点でのバージョンは DBD-mysql-4.011 である。以下、MySQL のユーザーが "XXX" 、 パスワードが "XXXXX" であるとしたら、ターミナルから、
cd Desktop/DBD-mysql-4.011
として、以下、改行せずに一行で
perl Makefile.PL --libs="-L/tmp/mysql-lib -lmysqlclient" --mysql_config=/usr/local/mysql/bin/mysql_config --testhost=localhost -testuser=XXX -testpassword=XXXXX
と入力する。
make
make test
エラーがでなければ、
sudo make install
これで、G4 でも G5 でも IntelMacでも、はたまた 32bit だろーが 64bit だろーが、インストールできるはずである。
ImageMagick である。ここには、 Mac OS X Binary Release がちゃんと存在するから、中上級者の方はここからインストールされてもよい。"ImageMagick" のバージョンアップのスピードには恐ろしいものがあって、現時点では 6.5.1 までリリースされているようだ。ImageMagick ダウンロードリンク の、 "Information Related to Version" からバージョンを選んで、"Download Links:" からダウンロードしていく。
例によってデスクトップに解凍する。G4 でも G5 でも IntelMacでも、はたまた 32bit だろーが 64bit だろーが、以下ターミナルから、
cd Desktop/ImageMagick-6.5.0
./configure
make
sudo make install
"./configure" および "make" に、気が遠くなって、寝てしまうほどの時間がかかるが、これでキチンとインストールされる。ところで、ここで "make test" というコマンドは何故かもっていないようなので、やってもムダである。 "make" にエラーが出なければ、インストールしてもかまわない。次に、 Movable Type が使うのは ImageMagick 本体ではなくて、 CGI の perl から使うことができる "PerlMagick" の方なので、それもインストールしておこう。続けて、
cd PerlMagick
perl Makefile.PL
make
make test
sudo make install
と入力すれば、終わり、である。
以上でご自分のマックの OS X 10.5 のうえに開発環境を組み上げることに成功したことになる。とりあえず、乾杯だ!
この上でさらに、先の記事を参考にして "MAMP" でも開発できるようにしておけば、 基本的には OS X 10.5 のうえに開発環境を持ち、さらに "MAMP" も使えるようにした、"開発環境(風ブログバージョン)二刀流" の完成である。

すごく参考になりました。以前mod_auth_mysqlのインストールの時にMySQLをコンパイルしてからmod_auth_mysqlをいれまして、「"mysql_config" と、"MySQL のいくつかのライブラリとファイル" が必要なのだが」を理解しているつもりでいたのにDBD::MySQL が入れられず悩んでいたところこの記事を見つけました。感謝、感謝です!。