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の設定

CakePHPmod_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が読み込まれず、下のような画面になります。

アクセス権の変更

tmp配下を読み書きできるようにします。

$ chmod -R 777 work_php/cakephp/app/tmp/

tmpのアクセス権を変更すると警告が減ります。

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' => '', 
    );  

}
?>

すべての警告がなくなれば準備完了です。