Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

vagrantその18 cakephpの初期設定をしてみる

参考にさせて頂いたページ

CakePHPの使い方 インストールからHelloWorldまで | Designup

CakePHPをさくらサーバー(共有)にインストールしてみた | webOpixel

CakePHP 2.x - DebugKitを導入

以前さくらのレンタルサーバーでやった記事

さくらのレンタルサーバスタンダードにCakePHPをインストールしてみる - MOTOMICHI WORKS BLOG

でやったのとほぼそのままだけど、vagrant使って改めて。

セキュリティコードの作成

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に変更する。

ページを更新すると、ページ下部のConnectionManager.phpに関する赤くなっているエラー2行が解消される。

黄色いエラーが二個ある

赤は無くなったけど、黄色が二個ある。

CakePHP is NOT able to connect to the database.

Database connection "Mysql" is missing, or could not be created.
SQLSTATE[28000] [1045] Access denied for user 'user'@'localhost' (using password: YES)

のように残っており、これはデータベース接続に失敗またはデータベースが作成されていない旨を伝えるエラー。

さくらインターネットレンタルサーバーにインストールしたときとは微妙にちがう。

もうひとつは

DebugKit is not installed. It will help you inspect and debug different aspects of your application.
You can install it from GitHub

となっていて、DebugKitがインストールされていない旨を伝えている。

まずdatabese.phpを編集する

ここまでvagrantその1から順番にやってきた場合は、以下のようにするとひとつ解消できる。 本番サーバーにアップするときは、こんなんじゃなくてちゃんと変更しましょう。

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => 'password',
    'database' => 'sample_db',
    'prefix' => '',
    //'encoding' => 'utf8',
);

DebugKitを導入する

ここからは CakePHP 2.x - DebugKitを導入 を参考に進めてみる

参考サイトでは、ディレクトリ名がPluginsだけど、自分の環境ではPluginなので、CakePHPのバージョンによるそういう微細な違いに気をつけましょう。

  • [a]まずcakephp/debug_kit · GitHubからダウンロード
  • [b] 参考サイトに倣って、DebugKitフォルダを配置
  • [c]参考サイトに倣って、app/Config/bootstrap.phpの一番下の行にCakePlugin::load('DebugKit');を追記する

ここまでやると、さっきまで黄色だった

DebugKit is not installed. It will help you inspect and debug different aspects of your application.

You can install it from GitHub

の項目が緑になる。

続けて、参考サイトの手順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

と怒られた場合は、PHPのバージョンを確認してみて下さい。PHP 5.3.0以降でないと こうはじかれるようです。

とのこと

この記事の最後に

赤と黄色のところは解消されたので、英語の文章をよく読んでチュートリアルを実行していくと良さそう。
上記のindex.phpで表示される内容は、

  • app/view/pages/home.php
  • app/view/layouts/default.ctp

の2ファイルの組み合わせで出力されるようである。

インストール手順に関してとても参考になった。
"CakePHPでHelloWorld!!"の項目については実施せずに 初心者のためのCakePHP2.0 プログラミング入門 あたりを実施していくと良さそうだな。と思っている。