Motomichi Works Blog

その日学習したことについて書いている日記です。誰かの役に立ったらそれはそれで嬉しいです。

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

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

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

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

CakePHP 2.x | DebugKitを導入

参考サイトに沿って実際にやってみる

参考サイト CakePHPの使い方 インストールからHelloWorldまで | Designup に沿ってやってみることにした。

自身の開発環境

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のバージョンによるそういう微細な違いに気をつけましょう。

  1. 参考サイトに倣って、DebugKitフォルダのアップロード
  2. 参考サイトに倣って、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

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

とのこと

この記事の最後に

http://ユーザー名.sakura.ne.jp/example/index.php

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

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

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

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