CakePHP+PostgreSQLのセットアップ on Ubuntu 10.10
CakePHP+PostgreSQLの組み合わせで開発できるようにするメモ。
LAPP環境の構築、アクセス制御の設定が終わっていることが前提です。
LAMP/LAPP環境の構築 on Ubuntu 10.10 - mikage014の日記
PostgreSQLのアクセス制御 - mikage014の日記
CakePHPの配置
http://cakephp.jp/ から CakePHP 1.3.8 をダウンロードします。
ホームディレクトリの/work_php/cakephp に配置します。
$ mkdir work_php $ cd ~/ダウンロード $ unzip cakephp-cakephp-1.3.8-0-g33afe21.zip $ mv cakephp-cakephp-41cd0e4 ~/work_php/cakephp
http://localhost/work_php/ で開発用ディレクトリにアクセスできるようにシンボリックリンクを作ります。
$ cd /var/www $ sudo ln -s /home/mikage/work_php/
Apacheの設定
CakePHPはmod_rewriteが有効になっていること、AllowOverrideが有効になっていることを期待しています。
デフォルトではmod_rewriteが無効になっているので有効にします。
$ sudo a2enmod rewrite Enabling module rewrite. Run '/etc/init.d/apache2 restart' to activate new configuration!
デフォルトではAllowOverrideが無効になっているので有効にします。
sudo vi /etc/apache2/sites-available/default
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews DirectoryIndex index.php index.html #AllowOverride None (変更) AllowOverride All (追加) Order allow,deny allow from all </Directory>
設定の再読込み
$ sudo service apache2 reload
CakePHPの動作確認
CakePHPにブラウザでアクセスします。
http://localhost/work_php/cakephp/index.php
mod_rewriteとAllowOverrideが無効の時はcssが読み込まれず、下のような画面になります。
CakePHP - core.phpの設定
パスワードやCookieの暗号化に使うパラメータ(乱数)をデフォルト値から変更します。
$ cd ~/work_php/cakephp/app/config/
$ vi core.php
/** * A random string used in security hashing methods. */ Configure::write('Security.salt', 'ランダムな英数字'); /** * A random numeric string (digits only) used to encrypt/decrypt strings. */ Configure::write('Security.cipherSeed', 'ランダムな数字');
CakePHP - database.phpの設定
DBの作成
PostgreSQLでDBを作成します。
$ sudo su - postgres $ createuser cakeuser -P 新しいロールのパスワード: 【パスワード】 もう一度入力してください: 【パスワード】 新しいロールをスーパーユーザとしますか? (y/n) n 新しいロールにデータベース作成権限を与えますか? (y/n) y 新しいロールにロールを作成する権限を与えますか? (y/n) n $ createdb -U cakeuser -O cakeuser cakedb パスワード: 【パスワード】
database.phpの設定
$ cd ~/work_php/cakephp/app/config/
$ cp database.php.default database.php
$ vi database.php
<?php class DATABASE_CONFIG { var $default = array( 'driver' => 'postgres', 'persistent' => false, 'host' => 'localhost', 'login' => 'cakeuser', 'password' => 'cakeuser', 'database' => 'cakedb', 'schema' => 'public', 'prefix' => '', ); } ?>