参考にさせて頂いたページ
CakePHPの使い方 インストールからHelloWorldまで | Designup
CakePHPをさくらサーバー(共有)にインストールしてみた | webOpixel
参考サイトに沿って実際にやってみる
参考サイト CakePHPの使い方 インストールからHelloWorldまで | Designup に沿ってやってみることにした。
自身の開発環境
- CakePHP 2.5.6
CakePHPのzipファイルダウンロード、解凍、フォルダ名変更
本家サイト http://cakephp.jp/ からCakePHPをダウンロードした。
2014年11月23日現在で、最新の安定板がバージョン2.5.6なので、これを使うことにした。
ダウンロードして、解凍。
cakephp-2.5.6というフォルダ名をexampleに変更した。
FileZillaでサーバーにアップロード
gitとかを経由してさくらのサーバーにpullでもしたいところだけど、今日はFileZillaでアップロード。 試しにexampleディレクトリを丸ごとwwwにアップロードしてみた。
/home/ユーザー名/www/example/
というディレクトリ構造になっている。
example/index.phpを閲覧してみる
http://ユーザー名.sakura.ne.jp/example/index.php
にアクセスすると、参考サイトと同じような感じでエラーが沢山出ている。
当然ながら自分の環境に合わせて色々設定しないといけない。
セキュリティコードの作成
example/app/Config/core.phpを編集する。
参考サイトとはバージョンが違うと思うので、225行目、230行目が編集対象箇所。
以下のようになっていたので、ランダムな文字列に変更してみる。
/**
* A random string used in security hashing methods.
*/
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
/**
* A random numeric string (digits only) used to encrypt/decrypt strings.
*/
Configure::write('Security.cipherSeed', '76859309657453542496749683645');
適当に変更して、core.phpをアップロードしてみたら、赤くなっている上部の2行のエラーが解消された。
データベース設定ファイルをコピーして作成
example/app/Config/database.php.default
をコピーして、ファイル名をdatabase.phpに変更する。
このdatabase.phpをサーバーにアップロードすると、ConnectionManager.phpに関する赤くなっているエラー2行が解消される。
黄色くなっているエラーが
CakePHP is NOT able to connect to the database.
Database connection "Mysql" is missing, or could not be created.
のように残っており、これはデータベース接続に失敗またはデータベースが作成されていない旨を伝えるエラー。
データベースをさくらインターネットコントロールパネルから作成する
https://secure.sakura.ad.jp/rscontrol/ がコントロールパネルのURL
さくらのレンタルサーバスタンダードでデータベースの設定をしてみる - MOTOMICHI WORKS BLOG が手順。見なくてもわかると思うけど。
database.phpを編集する
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);
public $test = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
//'encoding' => 'utf8',
);
}
となっている箇所を作成したデータベース情報に修正する。
具体的には
'host' => 'mysql000.db.sakura.ne.jp',//コントロールパネルのデータベース一覧の"データベース サーバ"参照
'login' => 'user',//コントロールパネルのデータベース一覧の"データベース ユーザ名"参照
'password' => 'password',//コントロールパネルから設定した"接続パスワード"
'database' => 'test_database_name',//コントロールパネルのデータベース一覧の"データベース名"参照
'prefix' => '',
//'encoding' => 'utf8',//必要に応じてコメントアウトを解除
の部分。
database.phpの編集が完了したら、FileZillaでサーバーにアップロードすれば黄色だったメッセージがひとつ緑に変わる。
DebugKitを導入する
ここからは CakePHP 2.x | DebugKitを導入 を参考に進めてみる
参考サイトでは、ディレクトリ名がPluginsだけど、自分の環境ではPluginなので、CakePHPのバージョンによるそういう微細な違いに気をつけましょう。
- 参考サイトに倣って、DebugKitフォルダのアップロード
- 参考サイトに倣って、app/Config/bootstrap.phpの一番下の行に
CakePlugin::load('DebugKit');
を追記してアップロード
ここまでやると、さっきまで黄色だった
http://ユーザー名.sakura.ne.jp/example/index.php
の"DebugKit is not installed."の項目は緑になる。 続けて、参考サイトの手順3と4を実施する。
手順3はapp/Controller/AppController.phpの一番下の行に追記するわけではなく、class AppControllerの中に追記するのだと思うので、
class AppController extends Controller {
}
となっているところを
class AppController extends Controller {
//DebugKitのコンポーネントを追加
var $components = array('DebugKit.Toolbar');
}
としてサーバーにアップロードした。
参考サイトの手順4については、app/Config/core.phpの中のConfigure::write('debug', 2);
のことだと思う。
0にするとデバッグしないモードになる。
備考1:参考サイトによると
"Sql log"パネルにSQLが表示されない場合は、どこかに以下が入り込んでいないか確認して下さい。 特にデフォルトで設置されるapp/View/Layouts/default.ctp内など。
<?php echo $this->element('sql_dump'); ?>
備考2:参考サイトによると
Parse error: syntax error, unexpected T_FUNCTION in
~app/Plugin/DebugKit/Controller/Component/ToolbarComponent.php on line 174
とのこと
この記事の最後に
http://ユーザー名.sakura.ne.jp/example/index.php
の赤と黄色のところは解消されたので、英語の文章をよく読んでチュートリアルを実行していくと良さそう。
上記のindex.phpで表示される内容は、
- app/view/pages/home.php
- app/view/layouts/default.ctp
の2ファイルの組み合わせで出力されるようである。
インストール手順に関してとても参考になった。
"CakePHPでHelloWorld!!"の項目については実施せずに 初心者のためのCakePHP2.0 プログラミング入門 あたりを実施していくと良さそうだな。と思っている。