こんばんは、cloudpack の @dz_ こと大平かづみです。
Prologue – はじめに
Blog Tutorial がだいたいできたところで、 composer
による CakePHP インストールと、bake
によるプロジェクトのスケルトン作成を試してみました。
以下のドキュメントに沿って進めます。
手順のポイント
composer で CakePHP2 をインストール
アプリを置くディレクトリに以下の composer.json
を作成します。アプリ名は任意です。
composer.json { "name": "example-app", "require": { "cakephp/cakephp": "2.6.*" }, "config": { "vendor-dir": "Vendor/" } }
そして、composer
でインストールしましょう。composer
は、そのディレクトリに実行ファイルを置いて php composer
で実行する方法と、グローバルに設置して composer
で実行する方法があります。私はグローバルで設置しました。詳細は公式ドキュメントのインストール手順などを参照くださいませ。
# composer でインストール composer install
ディレクトリはこのような構成になりました。
tree -L 1 . ├── Vendor │ ├── autoload.php │ ├── bin │ ├── cakephp │ └── composer ├── composer.json └── composer.lock
bake でプロジェクトのスケルトン作成
そして、プロジェクトのスケルトン(空のプロジェクト)を作りましょう。
# bake で CakePHP2 のスケルトンを作成 Vendor/bin/cake bake project . Welcome to CakePHP v2.6.8 Console ---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| App : cakeapp2 Path: /var/www/html/cakeapp2/ ---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| Skel Directory: /var/www/html/cakeapp2/Vendor/cakephp/cakephp/lib/Cake/Console/Templates/skel Will be copied to: /var/www/html/cakeapp2/. ---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| Look okay? (y/n/q) [y] > y ---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| Created: . in /var/www/html/cakeapp2/. ---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| * Random hash key created for 'Security.salt' * Random seed created for 'Security.cipherSeed' * Cache prefix set * app/Console/cake.php path set. CakePHP is not on your `include_path`, CAKE_CORE_INCLUDE_PATH will be hard coded. You can fix this by adding CakePHP to your `include_path`. * CAKE_CORE_INCLUDE_PATH set to /var/www/html/cakeapp2/Vendor/cakephp/cakephp/lib in webroot/index.php * CAKE_CORE_INCLUDE_PATH set to /var/www/html/cakeapp2/Vendor/cakephp/cakephp/lib in webroot/test.php * Remember to check these values after moving to production server Project baked successfully!
はい、簡単にプロジェクトのスケルトンが作成されました!プロジェクトの状態はこんな感じです。Blog Tutorial とはディレクトリ構成が異なりますね。
tree -L 1 . ├── Config ├── Console ├── Controller ├── Lib ├── Locale ├── Model ├── Plugin ├── Test ├── Vendor ├── View ├── composer.json ├── composer.lock ├── index.php ├── tmp └── webroot
初期設定
タイムゾーンの設定
Config/core.php ... /** * 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'); //データベース接続情報の設定
# テンプレート `database.php.default` をコピー cp Config/database.php.default Config/database.phpConfig/database.php ... public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', // <---|- データベースのユーザー名 'password' => 'password', // <---|- データベースのユーザーのパスワード 'database' => 'database_name', // <---|- データベース名 'prefix' => '', //'encoding' => 'utf8', ); ...
$test
も必要があれば設定してください。DebugKitプラグインのインストールとロード
DebugKitプラグインのインストール
composer.json
があるディレクトリで以下を実行します。# DebugKitプラグインをインストール composer require --dev cakephp/debug_kit "2.2.*"DebugKitプラグインのロード
Config/bootstrap.php ... /** * Plugins need to be loaded manually, you can either load them one by one or all of them in a single call * Uncomment one of the lines below, as you need. Make sure you read the documentation on CakePlugin to use more * advanced ways of loading plugins * * CakePlugin::loadAll(); // Loads all plugins at once * CakePlugin::load('DebugKit'); //Loads a single plugin named DebugKit * */ CakePlugin::load('DebugKit'); //DebugKitツールバーをコンポーネントに設定
Controller/AppController.php ... class AppController extends Controller { var $components = array('DebugKit.Toolbar'); //トラブルシューティング
bake project でタイムゾーンの Warning
bake
project
で、以下の Warning が出てしまう場合は、以下のように/etc/php.ini
でタイムゾーンの設定をしてください。Vendor/bin/cake bake project . PHP 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 'UTC' for 'UTC/0.0/no DST' instead in /var/www/html/cakeapp2/Vendor/cakephp/cakephp/lib/Cake/Cache/CacheEngine.php on line 60 ...... Welcome to CakePHP v2.6.8 Console ---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| App : cakeapp2 Path: /var/www/html/cakeapp2/ ---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| Skel Directory: /var/www/html/cakeapp2/Vendor/cakephp/cakephp/lib/Cake/Console/Templates/skel Will be copied to: /var/www/html/cakeapp2/. ---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| Look okay? (y/n/q) [y] >
php.ini
で、 date.timezone = の部分がコメントアウトされているので、"Asia/Tokyo"
を設定して下さい。/etc/php.ini ... [Date] date.timezone = "Asia/Tokyo" ...Epilogue - おわりに
昨日の記事 と少し似ていますが、こちらの方がすっきりプロジェクトを始められますね!
さぁ、ざくざく理解を進めてまいります!近況
最近
- Check! はじめての Zabbix インストール on Debian x Amazon RDS
- [初メモ] はじめての Tomcat 〜 つまづいたところまとめ (Java のバージョン指定、起動パラメータ など)
- Check! はじめての CakePHP2 ポイントまとめ 〜 Blog Tutorial を動かそう ← new!!
- Check! はじめての CakePHP2 〜 bake でプロジェクトスケルトンを利用する ← new!!
Phalcon関連
- 爆速フレームワーク!! Phalcon PHP Framework
- Meet Volt ! Phalcon 謹製テンプレートエンジン Volt - from 第71回 PHP勉強会
- Meet Phalcon! - Phalcon PHPフレームワークを Nginx on Amazon EC2 にインストール!
fluentd関連
- Check! はじめての fluentd を Amazon Linux で動かしてみる (ログを PHP から送る)
- Check! はじめての Fluentd 〜 IAMロールで Amazon EC2 と S3 間をセキュアに
技術ブログ寄稿
cloudpack技術ブログでも、AWS Lambda や 運用ツール Serf に関して記事を書いています。ご興味あれば読んでいただけると嬉しいです!
- 大平 かづみ の記事一覧