記事のページ

Mac OS X 10.5 と MAMP (Sp)

O2.jpg
 そろそろ SnowLeopard も発表されることだし、ここで Mac OS X 10.5 に開発環境を構築する手順をまとめておきたいと思う。今までの記事をお読みにならなくても、これだけ読んでいただければ十分ご理解いただけると思う。"MovableType4" を動かすことのできる開発環境(風ブログバージョン)決定版である。
 "MAMP" に直接 "DBD::MySQL" をカマせる方法を書いたとたん、 MAMP のサイトからフルバージョンの MySQL がインストールされている MAMP のリンクが消えてしまった。これを機会に記事を一つにまとめておきたいと思う。長いぞ〜。

 なるべく汎用性が高くて、かつ賞味期限も長いと思われる手順をまとめておくことにする。 自分が OS X 10.5 に構築する開発環境(風ブログバージョン)は基本的には OS X 10.5 のうえに開発環境を組み上げておいて、さらに "MAMP" も使えるようにした二刀流である。
 また、OS X 10.5 には余計なものを入れないでおいて "MAMP" だけ使いたいんだ、というご意見はモットモなのだが、Mac OS X 10.5 には、もとから余計な PHP やら DBI やらがインストールされているのだから、Mac OS X 10.5 本体に不足するものをインストールして、 "MAMP" 側からそれを使えるようにした方がどう考えても合理的であろう。そのへんはあまりこだわらずに、いい加減(良い加減)に考えておいた方がいいと思う。
 なお、本文中のリンク部分に関しては、変更されにくいものを選んではいるのだが、賞味期限が長いかどうかはわからないので、リンク先が消滅している場合には個々に対応をお願いしたい。

さ〜てと。

 なにはなくとも、"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" をダウンロードする。 そして、この図と、この図を参考に、コントロールパネルも含めインストールしておく。

 画像関連のライブラリは、X11 をインストールしておけば必要なモノは概ねインストールされているのだが、どういったわけか、libjpeg だけはインストールされていない。というわけで、 libjpeg をダウンロードして、インストールしていく。これが第一の難関である。
 ソースコードからインストールするには『設計(configure)し、インストール可能な形に整形(make)したのち、インストール(make install)する』という手順をふむのが普通である。"configure から make" までを "コンパイル"と呼ぶ。さて、"configure" とは、コンパイルに必要な"ヘッダファイル"や"ライブラリ"、そして"システムコール"や"関数"の存在を調べて、それらの情報をもとに"makefile"という設計図を自動的に作成する手順のことである。環境に合わせて"configure(設計)" する際に、いわば手動でオプションを指定する必要がある場合もある。また、ソースコードによっては、インストール先の環境にあわせてあらかじめ "makefile(設計図)" が用意されていて "configure" をしなくてもよいものもある。そして、それぞれの環境にあわせて作られた設計図である"makefile"をもとに"make(整形)"をするとインストール可能なファイルに変換されて、インストールが可能になるのである。
 ちなみに、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 ) の場合には、簡単に、
./configure --enable-shared
としてコンパイルするのだが、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 --enable-shared
としてコンパイルするのだが、この部分をコピーしてそのままターミナルの画面にペーストしてくださってもよい。 さて、ここでターミナルをちょっと一休みする。この図を参考に、デスクトップの jpeg-6b フォルダを開き、makefile を探してお使いのテキストエディタで開き、その20行目、
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
ついでに、795行目付近、
mysqli.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 
と、この図のように、行頭の "#" をはずして保存しよう。そして、またまた蛇足ながら、ファイルを書き換えたあとでは、"共有とアクセス権"から自分を消して、必ずそのファイルのパーミッションをもとどおりにしておこう。
さて、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" をダウンロードし、アプリケーションフォルダにコピーして、早速起動してみよう。
 まず、 phpMyAdmin から、MySQL に、 MovableType 用のデーターベースを作っておく(データーベースの名前は "mt" にしておくことにする)。次に、この図を参考にして "mt" "Blog" の2つのフォルダを作り、 MovableType のフォルダの中にある "mt-static" フォルダを "Blog" フォルダの中に入れ、それ以外のすべてのフォルダとファイルを "mt" フォルダに入れてしまおう。この段階でブラウザから、
 http://localhost:8888/cgi-bin/mt/mt-check.cgi/
と入力すれば MovableType が稼働するためのモジュールは、とりあえず揃っているのがわかる。
ここで、
 http://localhost:8888/cgi-bin/mt/mt-wizard.cgi
として、設定に入っていくと、残念ながらかならず失敗におわる。
チェックは通っているのになんでだよ〜、ということだが、ここでもまた原因は例の "DBD::MySQL" にある。 MovableType も筆者のように古いバージョンからお使いの方ならご存知のとおり、 "mt-config.cgi" というファイルはテキストエディタで書き込んで作っていたのだが、現在のバージョンでは、 "mt-wizard.cgi" プログラムから自動的に作られるようになっている。
 結局 "DBD::MySQL" が "MAMP" 搭載の "MySQL" に接続できないことが原因なのである。めんどうだが、 MovableType の中に含まれている "mt-config.cgi-original" をもとにして "mt-config.cgi" を作ってやることにする。
 この図を見ていただきたい。まず、筆者と同じように "mt" "Blog" の2つのフォルダを作られた場合には、
CGIPath   http://localhost:8888/cgi-bin/mt/
StaticWebPath http://localhost:8888/Blog/mt-static
および、
#================ DATABASE SETTINGS ==================
# REMOVE all sections below that refer to databases
# other than the one you will be using.

##### MYSQL #####
ObjectDriver DBI::mysql
Database mt
DBUser root
DBPassword XXXXX
DBHost localhost
DBSocket /Applications/MAMP/tmp/mysql/mysql.sock
DBPort 8889
として、 "mt-config.cgi" をお作りになればよい。当然のことながら、 "DBPassword XXXXX" の "XXXXX" の部分にはご自分の設定した、 "MySQL" のパスワードを入れておく。
 キモは、最後の2行である。これを入れておかないと "DBD::MySQL" が "MAMP" 搭載の "MySQL" に接続できないのだ。
 以上、作った "mt-config.cgi" を "mt" フォルダに入れておく。このあと、ターミナルから、
sudo chmod 777 /Applications/MAMP/cgi-bin/mt
sudo chmod 755 /Applications/MAMP/cgi-bin/mt/*.cgi
sudo chmod 777 /Applications/MAMP/htdocs/Blog
sudo chmod 777 /Applications/MAMP/htdocs/Blog/mt-static
と、パーミッションを設定しておこう。
さぁ、ブラウザから今度は、
http://localhost:8888/cgi-bin/mt/mt.cgi
と入力しよう。自動的にアップデートモードとなり、 "MAMP" 搭載の "MySQL" にテーブルが30個以上作られて、貴方の "MAMP" の中で MovableType が動き始めるはずである。

基本的には OS X 10.5 のうえに開発環境を持ち、さらに "MAMP" も使えるようにした、"開発環境(風ブログバージョン)二刀流" の完成である。

この記事について

この記事は著者が2009年4月20日に書いたものです。

コメントおよびツッコミ大歓迎です。
すべてのコメントに目をとおさせていただいておりますが、そのうちのいくつかを選んで公開しておりますので、ご了承いただけたら幸いです。

この記事は "マックの道具箱" カテゴリ内の記事です。

カテゴリ内の前の記事は
MAMP と DBD::MySQL (10.5)」です。

カテゴリ内の次の記事は
Mac OS X 10.6 と PHP」です。

最近の記事はメインページで見られます。過去に書かれた記事はアーカイブで見られます。著者自身の撮影した写真は、写真集でご覧になれます。

Made on a Mac