CakePHP2を使うためにMAMPを更新した
CakePHP2系をそろそろ使ってみようと思ったら、なんか自分の環境でうまく動きません。どうも調べてみるとphpのバージョンが低すぎるのが原因みたいなので、MAMPをアップデートする事にしました。
自分のMacはいまだにLeopardで、最新のMAMP2系は既にサポートしてくれてません。なので1系の最新である1.9.6にアップデートしました。もうMAMPは2系なので、後で役に立つ事は無いかもだけど、こういうのは書いておきたいので一応メモしておきます。
更新手順
http://documentation.mamp.info/en/mamp/installation/updating-mamp
- Rename the current program folder MAMP to MAMP_OLD
- Load the installation image of MAMP from http://mamp.info and open it
- Drag the MAMP folder from the installation image to your "Applications" folder
- Copy the directories "htdocs" and "db" from your MAMP_OLD folder into the MAMP folder. It contains your personal HTML files and database contents. Overwrite the folders in the new MAMP folder
- Check whether all data has been transferred correctly
- The MAMP_OLD folder can now be deleted. You may however keep it, so you can fall back to your original setup
公式ではこんな手順になっています。MySQLの中身とかは自動でうまい事やってくれたりはしない様子。自分の場合、Virtual Hostだったり自己証明のSSLだったりがあるので、もうちょっと手間がかかります。
$ cd /Applications $ mv MAMP MAMP_OLD #MAMP 1.9.6を/Applications/MAMPに設置 $ cd MAMP $ rm -fR db/ $ cp ../MAMP_OLD/db .
まずは公式の手順どおりMySQLのデータベースであるユーザーデータの移行までやります。なお、Virtual Hostを作ってるから、htdocsは使ってませんでした。
Virtual HostとSSL
$ cp ../MAMP_OLD/conf/apache/myhttpd.conf conf/apache/ $ cp -R ../MAMP_OLD/conf/apache/ssl_crt conf/apache/ $ cp -R ../MAMP_OLD/conf/apache/ssl_key conf/apache/
httpd.confやssl.confは手をつけず、自分が書いた設定はmyhttpd.confにまとめました。これとSSL用のファイルをコピーします。
Include /Applications/MAMP/conf/apache/myhttpd.conf
httpd.confの最後で自分のconfを読み込むようにincludeを書きます。
相対パスはダメだった
Include myhttpd.conf
$ /Applications/MAMP/bin/apache2/bin/apachectl configtest httpd: could not open document config file /Applications/MAMP/Library/myhttpd.conf
myhttpd.confとhttpd.confは同じディレクトリにあるので、相対パスでも良いんじゃないかと思ったけど、なんかダメでした。まぁ、絶対パスで困る事もないので、絶対パスで書きます。
ssl用の設定
$ vim /Applications/MAMP/bin/startApache.sh
# /bin/sh
/Applications/MAMP/Library/bin/apachectl startssl
MAMPでSSL使うには、startApache.shも編集する必要があります。これも古いMAMPから新しいMAMPに、自分で移行しないといけないファイルです。といってもstart
がstartssl
になるだけなので、普通に書き足します。
<IfDefine SSL> LoadModule ssl_module modules/mod_ssl.so </IfDefine>
ちなみにこの変更は、httpd.confのこのIfDefine SSL
が真になるようにしています。
MySQLのデータファイルのアップグレード
MAMP.appを起動すると、MySQLのデータファイルをアップグレードするようにメッセージが出ました。まぁMySQLは5.0から5.5になったので、やらざるを得ません。バックアップをしてからアップグレードを始めるように書いてあります。今回は特に問題なくアップグレードできたようだけど、どこかで止まったりしたらややこしそう。まぁ開発環境だから、最悪消しても良いけど。アップグレードツールのとこにも書いてあるけど、バックアップしてからのアップグレードが推奨されてます。なのでMAMP_OLDディレクトリを削除する前にやったほうが良いです。