CakePHPのbakeがうまく動かないのでXAMPPをダウングレードしたらなぜか解決した
MacでCakePHPをのほほんと勉強中。
ところが、開発環境でbakeが正常に動かない…Bakeを立ち上げるところまでは行くんだけど、Modelのvalidateのところで、フィールド名とバリデーションの種類のリストがダーっと出るべきところで、なぜかスキップして次の質問に行ってしまうのだ。
ググって色々試してみたんだけどうまくいかなくて右往左往する中、XAMPPをダウングレードしたら直ったという意見を見かけた。私はXAMPP for MacOSX 1.7.2aを使っていたのだけど、思い切って1.0.1まで落として再トライしてみたら、無事bakeすることができた。ほくほく。bake楽しいねぇ。これすごいねぇ。感動。
というわけで、XAMPPを再インストールするところからbakeを動かすところまで一通りの手順をメモ。
ちなみに、Cakeは1.2.6を使っています。
XAMPPをアンインストール
まずXAMPPをアンインストール。
sudo rm -rf /Applications/XAMPP
これだけだと、MySQLの色んな残骸が残ってしまっているのでそれらも消す。
sudo rm -rf /usr/local/mysql sudo rm -rf /Library/StartupItems/MYSQL sudo rm -rf /Library/PreferencePanes/MySQL.prefPane
XAMPPのバージョンを落として再インストール
XAMPP for MacOSXのダウングレードファイル置き場
前は1.7.2aを使っていたのだけど、その下のバージョンが一気にさかのぼって1.0.1しかなかったので、まぁそんなに変わらんだろうとこいつをインストール。
ちなみに、XAMPP1.0.1は PHP5.3.0 MySQL5.1.33。MySQLがちょっとだけ古いが最新版と環境はそんなに変わらないようです。
で、XAMPPを起動。
sudo /Applications/XAMPP/xamppfiles/xampp start
XAMPPのhtdocsの中にcake一式を入れる。これでCakeのトップページが見れるがそのままだと、tmpのキャッシュが書き込めません的なエラーが出るので、cakeの中の/app/tmp/フォルダのパーミッションを777(誰でも読み書きできる状態)にする。
Macだったら、
/app/tmp/のフォルダを選択 > 「情報を見る」 > 「共有とアクセス権」を3項目全部「読み/書き」にする > 「内包している項目に適用」
でOK。
#イケメンプログラマから、なんでそこだけGUIやねんwというありがたいツッコミが入ったので追記。コマンドなら下記でいけます。
chmod -R 777 /Applications/XAMPP/xamppfiles/htdocs/.../app/tmp
これでBake成功。もりもり焼けます!ひゃっほう楽しい!
ちなみにド素人なので、何か間違ってるところとか、なぜ最新版で動かなかったかとか、親切な方教えて下さい。。
ちなみに、Cakeの勉強にはこの本使っています。これマジでいい本。わかりやすく親切に噛み砕いて書いてくれてあるので、プログラム初心者でもわりと抵抗なく入っていけます。
深く書かれていて便利である