@blog.justoneplanet.info

日々勉強

CakePHPを使う準備をする

今更な感があるがメモとして残しておく。さらに面倒なのでローカルのXAMPPで説明する。

■ダウンロード

以下のようにダウンロードして解凍する。

mkdir cake.sample.justoneplanet.info
cd cake.sample.justoneplanet.info/
wget https://github.com/cakephp/cakephp/tarball/1.3.10
tar xvzf cakephp-cakephp-1.3.10-0-g8671aa3.tar.gz
rm cakephp-cakephp-1.3.10-0-g8671aa3.tar.gz
rm -fr cakephp-cakephp-b0abad1/

以下のような状態になっている。

  • cake.sample.justoneplanet.info/app
  • cake.sample.justoneplanet.info/cake
  • cake.sample.justoneplanet.info/plugins
  • cake.sample.justoneplanet.info/vendors
  • cake.sample.justoneplanet.info/index.php
  • cake.sample.justoneplanet.info/README

■Apacheの設定

まぁ、バーチャルホストの設定を変更する。

vi /Applications/XAMPP/etc/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/cake.sample.justoneplanet.info/app/webroot"
    ServerName cake.sample.justoneplanet.info
    ServerAlias www.cake.sample.justoneplanet.info
#    SetEnv CAKE_ENV default
</VirtualHost>

hostsファイルを変更しApacheを再起動する。

■パーミッションの設定

起動すると大量のエラー文が表示されるので、以下のコマンドを実行してパーミッションを変更する。

chmod -R 0777 app/tmp/

また、以下のコマンドを実行して「Security.salt」と「Security.cipherSeed」を変更する。

vi app/config/core.php

■データベースの設定

ファイルを直接編集しても良いんだけど、せっかくなのでbakeを使う。

./cake/console/cake bake

以下のように表示されるので順に設定する。

Welcome to CakePHP v1.3.10 Console
---------------------------------------------------------------
App : app
Path: /Applications/XAMPP/xamppfiles/htdocs/cake.sample.justoneplanet.info/app
---------------------------------------------------------------
Your database configuration was not found. Take a moment to create one.
---------------------------------------------------------------
Database Configuration:
---------------------------------------------------------------
Name:
[default] > default
Driver: (db2/firebird/mssql/mysql/mysqli/odbc/oracle/postgres/sqlite/sybase) 
[mysql] > mysql
Persistent Connection? (y/n) 
[n] > n
Database Host:
[localhost] > localhost
Port?
[n] > n
User:
[root] > hogehoge
Password:
> **********
Database Name:
[cake] > sample
Table Prefix?
[n] > n
Table encoding?
[n] > utf8

設定が終わると確認メッセージが表示され他のデータベース設定をするか聞かれる。

Look okay? (y/n) 
[y] > y
Do you wish to add another database configuration?  
[n] > y

今回は以下のようにしてもう一つ設定する。

Welcome to CakePHP v1.3.10 Console
---------------------------------------------------------------
App : app
Path: /Applications/XAMPP/xamppfiles/htdocs/cake.sample.justoneplanet.info/app
---------------------------------------------------------------
Your database configuration was not found. Take a moment to create one.
---------------------------------------------------------------
Database Configuration:
---------------------------------------------------------------
Name:
[default] > production
Driver: (db2/firebird/mssql/mysql/mysqli/odbc/oracle/postgres/sqlite/sybase) 
[mysql] > mysql
Persistent Connection? (y/n) 
[n] > n
Database Host:
[localhost] > localhost
Port?
[n] > n
User:
[root] > hogehoge
Password:
> **********
Database Name:
[cake] > sample
Table Prefix?
[n] > n
Table encoding?
[n] > utf8

開発用と本番用で設定を用意した。開発上は関係ないと思われるが、以前に使用していたdevelopmentという名前だと配置した段階でdefaultという設定名が必要になるようなので、開発環境はdefaultという名前を用いることにした。

app/app_model.php

以下のように記述して本番環境用の設定も読み込めるようにする。

class AppModel extends Model {
    /**
     * __construct
     * @param mixed $id
     * @param mixed $table
     * @param mixed $ds
     */
    public function __construct($id = false, $table = null, $ds = null)
    {
        $this->useDbConfig = Configure::read('Config.environment');
        parent::__construct($id, $table, $ds);
    }
}

■開発環境と本番環境の設定の分離

以下のコマンドを実行する。

vi app/config/bootstrap.php
mkdir app/config/environment

以下の記述を最終行に付加する。

Configure::write('Config.environment', isset($_SERVER['CAKE_ENV']) ? $_SERVER['CAKE_ENV'] : "default");
require_once("environment/" . basename(Configure::read('Config.environment') . ".php"));

新しくできたディレクトリに以下の2ファイルを追加する。

default.php

開発用設定ファイル。

Configure::write('debug', 2);
Configure::write('Cache.disable', true);

エラーメッセージを表示するのと、キャッシュを無効にしておく。

production.php

本番用設定ファイル。

Configure::write('debug', 0);
Configure::write('Cache.disable', false);

エラーメッセージは見せないようにする。

■おまけ

PHP5.3以上を使っていると思うので、core.php以下の部分をコメントアウトし引数を変更する。

date_default_timezone_set('Asia/Tokyo');

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment