今更な感があるがメモとして残しておく。さらに面倒なのでローカルの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');