今までCakephpは1.2系を使用して開発していましたが、そろそろ2.x系に移ろうかと、違いを勉強中。
とりあえず、「CakePHP2 実践入門 (WEB+DB PRESS plus)」を購入。
1.x系と2.x系の違いが書いてあるので、分かりやすい。
読む限りでは、それほど大きくは変わっていないかなという印象ですが、既存のシステムを移行するには作業量があるのでハードルが高そうです。新規で2.x系で開発するにはいいかもしれません。
新規インストールのサンプルが書いてあるので、それを試していますが、bakeが通りません。
Xamppでlocalhostにcaketestディレクトリを作ってbakeしてみましたが、エラーでストップ。
$ ./Console/cake bake all Category Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Cache/CacheEngine.php on line 59 Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Cache/CacheEngine.php on line 59 Welcome to CakePHP v2.2.5 Console --------------------------------------------------------------- App : app Path: /Applications/XAMPP/xamppfiles/htdocs/caketest/app/ --------------------------------------------------------------- Bake All --------------------------------------------------------------- Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in [/Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Model/Datasource/Database/Mysql.php, line 149] Error: Database connection "Mysql" is missing, or could not be created. #0 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Model/Datasource/DboSource.php(261): Mysql->connect() #1 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Model/ConnectionManager.php(101): DboSource->__construct(Array) #2 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Model/Model.php(3169): ConnectionManager::getDataSource('default') #3 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Model/Model.php(1096): Model->setDataSource('default') #4 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Model/Model.php(3191): Model->setSource('categories') #5 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Model/Model.php(1305): Model->getDataSource() #6 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Console/Command/Task/ModelTask.php(504): Model->schema(true) #7 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Console/Command/Task/ModelTask.php(785): ModelTask->doAssociations(Object(Model)) #8 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Console/Command/BakeShell.php(173): ModelTask->bake(Object(Model), false) #9 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Console/Shell.php(392): BakeShell->all() #10 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Console/ShellDispatcher.php(201): Shell->runCommand('all', Array) #11 /Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Console/ShellDispatcher.php(69): ShellDispatcher->dispatch() #12 /Applications/XAMPP/xamppfiles/htdocs/caketest/app/Console/cake.php(33): ShellDispatcher::run(Array) #13 {main}
困ったときはGoogle。
で、調べると
Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
この部分は「/etc/php.ini」のtimezoneを「Asia/Tokyo」に変更。
core.phpのコメントアウトしてある「UTC」のところを「Asia/Tokyo」にして有効にする。
/** * Uncomment this line and correct your server timezone to fix * any date & time related errors. */ // date_default_timezone_set('UTC'); date_default_timezone_set('Asia/Tokyo'); // 変更する
Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in [/Applications/XAMPP/xamppfiles/htdocs/caketest/lib/Cake/Model/Datasource/Database/Mysql.php, line 149]
この部分は「/var/mysql/mysql.sock」が無いということなので、作って、シンボリックリンクを貼る
$ sudo mkdir /var/mysql Password: $ sudo ln /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock /var/mysql/mysql.sock
これでとりあえずはbakeが使えるようになりました。
Via:[MAMP+CakePHP]cake bakeでエラーになるので修正
Via:xampp mac bake できない
Via:CakePHPをMacのMAMPで運用した時にcake bakeでエラーがでる
Via:CakePHPで「Warning: strtotime()~」のエラーが出た時
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)