CakePHP 開発環境
/var/www/ 以下にフォルダを掘って、CakePHP 最新版を放り込みます。
そのままだとエラーになるため、Apache の設定を変更したりします。
Apache のモジュール有効化
以下はインストールしたての Ubuntu 9.04 の場合。ちゃんと運用しているサーバーでは適切に設定しましょう。
まず、mod_rewrite を有効にします。Ubuntu の LAMP Server の場合、モジュールは組み込み済みで有効になっていないだけです。
0
1
| | $ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/rewrite.load rewrite.load
|
AllowOverride を All に切り替えます (本運用環境では、特定フォルダのみピンポイントで許可出します)
0
1
2
3
| | $ cd /etc/apache2/sites-available
$ sudo cp -p default default.org
$ sudo vi default
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| <VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
# AllowOverride None
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
# AllowOverride None
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
|
Apache 再起動。
0
| | $ sudo apache2ctl restart
|
次に、下記のファイルを編集します。
- (CakePHP)/.htaccess
- (CakePHP)/app/.htaccess
- (CakePHP)/app/webroot/.htaccess
以下のように、Root前提になってるのを書き換えます。
0
1
2
3
| <IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
|
↓
0
1
2
3
4
| <IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /(CakePHP)
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
|
ほかの二つも /(CakePHP) を /(CakePHP)/app や /(CakePHP)/app/webroot に切り替えます。
橙色エラーの修正
コピーした上で、データベースの設定を適切に書き換えます。
0
1
| | $ cd /var/www/cakephp/app/config
$ sudo cp database.php.default database.php
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <?php class DATABASE_CONFIG {
/*コメント略*/
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user', //IDを書き換える
'password' => 'password', //パスワードを書き換える
'database' => 'database_name', //DBを書き換える
'prefix' => '', //そのままでよい。
);
var $test = array( //テスト用設定。同じように書き換えを行う。(DBを変えてテストに用いたりする)
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
);
} ?>
|
0
| <?php //CakePHP 1.2.6 の場合
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi'); ?>
|
既定値では危ないので、40文字の英数字混じりの何らかの別のパスフレーズに変えておきましょう。