あれあの備忘録

アプリ作成の備忘録、IT関連のニュースなどなどいろいろ

さくらレンタルサーバにCakePHPを導入する【CakePHP 2.6.4】

f:id:ra-men-tarou:20150511180945j:plain

こんにちは! ra-men-tarouです。

最近webアプリ作成熱がまた高まりだしてきたのでphpを使って何か作りたいと思います。

phpにはCakePHPというMVCフレームワークがありますのでこちらを使って 効率的に開発を進めたいと思います。

今回はさくらレンタルサーバCakePHP(2.6.4)を導入したときの備忘録です。

主に参考にしたのは下のURLです。

参考にした2つのURLのいいとこ取りで説明したいと思います。

URL1:http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=76&forum=2cakephp.jp

URL2:http://motomichi-works.hatenablog.com/entry/2014/11/23/110209

CakePHPのダウンロード

こちらのリンクからCakePHPをダウンロードしてください。

この記事を書いた時は2.6.4が安定版でした。

http://cakephp.jp/

CakePHPのアップロード

ダウンロードしたファイルを解凍したらさくらレンタルサーバにアップロードします。

今回は下記階層にアップロードしました。

home/(アカウント名)/www/cake/cakephp-2.6.4

.htaccessにRewriteBaseの追加

http://ユーザー名.sakura.ne.jp/cake/cakephp-2.6.4/index.phpにアクセスしようとすると404エラーが出ます。

URL1を参考に①~③の各.htaccessに「RewriteBase /cake/...」の定義を追加してください。

(※注意:末尾に「/」はつけいない)

①home/(アカウント名)/www/cake/cakephp-2.6.4/.htaccess


   RewriteEngine on
   RewriteBase /cake/cakephp-2.6.4
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]

②home/(アカウント名)/www/cake/cakephp-2.6.4/app/.htaccess


    RewriteEngine on
    RewriteBase /cake/cakephp-2.6.4/app
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]

③home/(アカウント名)/www/cake/cakephp-2.6.4/app/webroot/.htaccess


    RewriteEngine On
    RewriteBase /cake/example/app/webroot
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

以上の設定を終えるとindex.phpにつながるかと思います。

f:id:ra-men-tarou:20150511173335p:plain

まだエラーと警告が出ている箇所があるため設定を直していきます。

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

URL2を参考にhome/(アカウント名)/www/cake/cakephp-2.6.4/app/Config/core.phpのxxx...の部分をランダムな文字列に変更します。

    Configure::write('Security.salt', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
    Configure::write('Security.cipherSeed', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

この時点でindex.phpの上2行のエラーが解消されます。

データベース設定ファイルの作成

こちらもURL2を参考に設定を行います。

home/(アカウント名)/www/cake/cakephp-2.6.4/app/Config/database.php.default をdatabase.phpという名前で同じ階層にアップロードします。

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',//必要に応じてコメントアウトを解除

debugkitの導入

cakePHPのdebugkitはgithubからダウンロードできます。

CakePHP 2.x系はdebugkit 2.2.y系の最新のもので使うことができると書いてあります。

リリースを見ると2.2.5が最新版のようなのでこちらを下記URLからダウンロードしてください。

[https://github.com/cakephp/debug_kit/releases]

home/(アカウント名)/www/cake/cakephp-2.6.4/plugins 配下にDebugKitフォルダをアップロードしてください。

その後home/(アカウント名)/www/cake/cakephp-2.6.4app/Config/bootstrap.phpの 一番下の行に下記を追記してください。

CakePlugin::load('DebugKit');

最後にhome/(アカウント名)/www/cake/cakephp-2.6.4/app/Controller/AppController.php

class AppController extends Controller {
}

の部分を

class AppController extends Controller {
  //DebugKitのコンポーネントを追加
  var $components = array('DebugKit.Toolbar');
}

とすれば完了です。

最後にindex.phpにアクセスすると全部緑色になっていると思います。

最後に

買ったまま部屋に転がっていたCakePHP本を拾ったことから今回の備忘録が書かれたわけですが CakePHP、なかなか面白そうです。

こちらのリンクを参考にコントローラとビューを使ってhelloworld を表示させたのですが、コントローラとビューをファイル名とフォルダ名から結びつけているのですね。 フレームワークをまともに使ったことがない僕には未知の領域ではじめは??でした。

http://joppot.info/2014/01/24/442

いろいろ便利なパーツが揃っているようなので活用下いきたいと思います。

それでは!