LoginSignup
13
16

More than 5 years have passed since last update.

【CakePHP2系】初期設定

Posted at

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 ファイルをいじる

/etc/httpd/conf/httpd.conf
<Directory "/var/www/html">

    AllowOverride All #デフォルトだとNoneなのでAllに変更

</Directory>

Apacheを再読み込み&再起動してやる

$ sudo service httpd reload
$ sudo service httpd restart

これでスタイルが適用され、とりあえずはインストールからのスタートページの表示が完了。

キャプチャ214214.PNG

残ってるエラーを解決していく

まだいくつかエラーが表示されているので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 生成ツールというものがあったのでこちらを利用し、生成されたランダムな文字列貼り付ける。

cakephp/app/Config/core.php
/**
 * 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 の内容を使用するデータベースの情報に変更してあげる。

cakephp/app/Config/database.php
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 にデバッグキットを読み込ませる記述を追加する。

cakephp/app/Config/bootstrap.php
CakePlugin::load('DebugKit');

最後に、cakephp/app/Controller の AppController.php にデバッグキットを使用する記述を追加する。

cakephp/app/Controller/AppController.php
class AppController extends Controller {
    public $components = array('DebugKit.Toolbar'); //追加
}

これにて、画面右上にケーキのマークが表示され、クリックするとデバッグキットツールバーが展開されるはずだ。

キャプチャ21421421.PNG

初期設定は以上で完了。
基本的なPHPとデータベースの知識があれば問題なく設定できるだろう。

13
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
16