日別アーカイブ: 2014年8月16日

【CakePHP】bakeのやり方

端末からコマンド叩きます
$ cd cake/app/
$ Console/cake bake all [テーブル名]

※テーブル名がtest_tablesであれば、[テーブル名]をTestTableとして実行する今回指定するテーブルに限らず、テーブル名に「.(ドット)」を含むものが同じDBにあると権限がないよエラー等が出ますので、アンダーバー等に変更しましょう。区切り文字と判断してしまうみたいですね。

bakeを実行した後に、同じCakePHPを使っているページにブラウザでアクセスすると、以下のようなエラーが表示されることがあります。

Warning: SplFileInfo::openFile(/home/admin/www/test/html/manager/../../cake/app/tmp/cache/persistent/myapp_cake_core_cake_console_): failed to open stream: Permission denied in /home/admin/www/test/cake/lib/Cake/Cache/Engine/FileEngine.php on line 314

cake/app/tmp/cache/persistent/myapp_cake_core_cake_console_
のキャッシュファイルが、bakeを実行したユーザで作成され、664のパーミッションになっています。ブラウザでアクセスするときはapacheユーザなので、このパーミッションだと拒否されてしまいます。

対応の仕方としては、以下のどれか
1.上記のキャッシュファイルを削除する
2.上記のキャッシュファイルのパーミッションを777に設定する
3.apacheユーザの所属グループをうまいこと設定してやる

キャッシュファイルは時々削除されるようなので、2をやっても半永久的な対策にはなりません。連続してbakeする場合は1より2の方がベター。

▼私はこの本を参考にCakePHP 2.3で開発しています(bakeのことは申し訳程度にしか載ってないです…)

CakePHP2実践入門 [ 安藤祐介 ]

価格:3,110円
(2014/9/15 22:05時点)
感想(0件)

【PHP】メールを送る場合の文字コードはUTF-8を使って良いか?

結論はNG。
ガラケーが存在する以上、JIS(ISO-2022-JP)しか選べない。
また、SMTPは7bitまでしか使えないのでJISが最も馴染む。

メールはシンプル故に普及し、普及してしまったがために強化しづらい最たる例ですな…。

【参考URL】
http://slashdot.jp/journal/574971/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E5%8F%97%E4%BF%A1%E3%81%AFutf-8-iso-2022-jp