CakePHP2系の初期設定をメモ。
環境はVagrantで立ち上げたCentOSにApacheやらMySQLを入れたもの。
#CakePHPとは?
PHPでウェブアプリケーションを作成する為のフレームワーク。
他にもPHPのフレームワークを挙げると、「Laravel」、「Zend Framework」、「Symfony」、「Codeigniter」等が存在し、その中でも、主流であるのが「CakePHP」である。
最近はLaravelも人気になりつつあるらしいので機会があれば触ってみたい。
CakePHPは現在3系が最新のバージョンだが、今回は2系を取り扱っていく。
#インストール
今回は2016年12月現在、2系の最新バージョンをGitHubよりインストールする。
Apacheのデフォルトのドキュメントルートである/var/www/html
に移動して
$ git clone https://github.com/cakephp/cakephp.git -b 2.x
-b 2.x
でブランチを指定しないと3系の最新バージョンがcloneされてしまうので注意。
クローンが成功するとcakephpというディレクトリができる。
gitがわからない人場合はzipを落として解凍。
#エラーエラーエラー
さっそくアクセスしてみるとエラーが出る。
Warning: _cake_core_ cache was unable to write 'cake_dev_ja' to File cache in /var/www/html/cakephp/lib/Cake/Cache/Cache.php on line 328
Warning: /var/www/html/cakephp/app/tmp/cache/persistent/ is not writable in /var/www/html/cakephp/lib/Cake/Cache/Engine/FileEngine.php on line 385
インストールしたてほやほやのままではエラーが出てしまう。
キャッシュが書き込めんがなとのこと。
cakephp/app/tmp
以下のファイルのパーミッションを777に変更
$ chmod -R 777 cakephp/app/tmp
これで「CakePHP: the rapid development php framework」等と記載されたページにアクセスできる。
アクセスできない場合は、php.iniのタイムゾーンの設定などを確認。
アクセスでき、色々とテキストは表示されるがCSSが読み込めていない場合は
httpd.conf ファイルをいじる
<Directory "/var/www/html">
AllowOverride All #デフォルトだとNoneなのでAllに変更
</Directory>
Apacheを再読み込み&再起動してやる
$ sudo service httpd reload
$ sudo service httpd restart
これでスタイルが適用され、とりあえずはインストールからのスタートページの表示が完了。
#残ってるエラーを解決していく
まだいくつかエラーが表示されているので1つずつ解決していく。
- Security.salt の変更
- Security.cipherSeed の変更
- データベースの設定
- DebugKit のインストール
##Security.salt, Security.cipherSeed の変更
Notice (1024): Please change the value of 'Security.salt' in APP/Config/core.php to a salt value specific to your application. [CORE/Cake/Utility/Debugger.php, line 839]
Notice (1024): Please change the value of 'Security.cipherSeed' in APP/Config/core.php to a numeric (digits only) seed value specific to your application. [CORE/Cake/Utility/Debugger.php, line 843] Your version of PHP is 5.2.8 or higher.
といったエラーが表示されていると思う。
書いてある通り、Security.salt, Security.cipherSeed の値を変更してあげれば良い。
これらの値はハッシュ化やら暗号化やらに使用される。
cakephp/app/Config/core.php
の228行目と233行目にそれぞれあると思うので
文字列を適当な値に変更する。
適当で構わないのだが、Security.salt 生成ツールというものがあったのでこちらを利用し、生成されたランダムな文字列貼り付ける。
/**
* A random string used in security hashing methods.
*/
Configure::write('Security.salt', '生成されたランダムな文字列');
/**
* A random numeric string (digits only) used to encrypt/decrypt strings.
*/
Configure::write('Security.cipherSeed', '生成されたランダムな文字列');
##データベースの設定
次はデータベースの設定。
Your database configuration file is NOT present. Rename APP/Config/database.php.default to APP/Config/database.php
APP/Config
内にある database.php.default を database.php という名前に変更しなさいとのこと。
念のため database.php.default はそのまま残しつつ database.php という名前でファイルを複製してあげる。
次はデータベースの情報を database.php に記述して、CakePHPとデータベースを繋いであげる。
database.php 69行目付近の $default の内容を使用するデータベースの情報に変更してあげる。
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => '使用するホスト名',
'login' => '使用するユーザー名',
'password' => '任意のパスワード',
'database' => '使用するデータベース名',
'prefix' => '',
//'encoding' => 'utf8',
);
ちなみに少し下にある $test はユニットテストに使用するデータベースの設定なので、今回は変更しない。
##デバッグキットのインストール
cakephp/app/Plugin
に移動し、GitHubから2系用のデバッグキットをクローンする。
$ git clone https://github.com/cakephp/debug_kit -b 2.2
インストールすると debug_kit というファイルができているので、DebugKit という名前に変更する。
$ mv debug_kit DebugKit
cakephp/app/Config
にある bootstrap.php にデバッグキットを読み込ませる記述を追加する。
CakePlugin::load('DebugKit');
最後に、cakephp/app/Controller
の AppController.php にデバッグキットを使用する記述を追加する。
class AppController extends Controller {
public $components = array('DebugKit.Toolbar'); //追加
}
これにて、画面右上にケーキのマークが表示され、クリックするとデバッグキットツールバーが展開されるはずだ。
初期設定は以上で完了。
基本的なPHPとデータベースの知識があれば問題なく設定できるだろう。