PHPで人気のフレームワークを使ってみようと思い
初期設定の手順を防備録として残します。
cakePHPは、オープンソースのPHPフレームワークである。
cakePHP以外にも、 symfonyやZend Frameworkがある
ライブラリ、クラス、実行時の構造基盤などで構成されていて、
Ruby on Rails フレームワークに触発されている。
本環境構造化し、すばやい仕方で作業しつつも、柔軟性を失わないようにできること
アジャイル開発をするには、もってこいである
さて、本題にもどってインストールから初期設定までの方法をしめす。
まず、本環境を以下に示す。
SUSE linux 10.2
Apache 2.2.6
php 5.2.5
cakePHP1.1.20(安定版)
上記PHP実行環境はできているものとする
1.まず、cakePHPをダウンロードする
上部にある download からインストールする。
2.インストール後、展開したフォルダ
cake_X.X.XX_XXXXのフォルダ内にあるすべての
フォルダ・ファイルを
apacheルーとディレクトリ配下の任意のディレクトリ
に置く。
ここでは、/usr/local/apache2/htdocs/cake/ にコピーした
cakeディレクトリは独自に作成した
3.パーミッションの設定
app/
tmp/
cashe/
models/
persistent/
views/
sessions/
logs/
tests
赤字の部分の配下を707のパーミッションにする
私はcake関連のファイル類をすべて755にした。
その後、app/tmp/cache/modelsディレクリで書き込みエラーが
でたので、このフォルダを777に変更した
4.mod_rewriteの設定
Apacheの設定ファイル httpd.confの下記部分を有効にする
LoadModule rewrite_module modules/mod_rewrite.so
.htaccessが使えるようにするのを確認(赤字の部分)
<Directory "/usr/local/apache2/htdocs">
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>
5. 下記3つの.htaccessファイルを作成する
cake/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
RewriteBase /cake/
</IfModule>
cake/app/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
RewriteBase /cake/app
</IfModule>
cake/app/webroot/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
RewriteBase /cake/app/webroot
</IfModule>
6. cakePHPでmysqlデータベースを使えるようにする
cakePHPのファイルで app/config/database.php.default をコピーし
app/config/database.phpを作成し、編集する。
配列変数 $defaultが特別な処理をせずに接続をおこなうので、これを
編集する 連想配列要素の
host データベースのあるホスト名
login データベース接続ユーザ
password 接続ユーザのパスワード
database データベース名
7.結果の確認
データベースの接続
htttp://ホスト/cake/index.phpで下記の黒字部分
が表示されればOK
cakePHPのmod_rewriteの設定確認
cake/app/controllers/tasks_controller.phpを作成し、内容を下記とする
<?php
// app/controllers/tasks_controller.php
class TasksController extends AppController {
var $name = 'Tasks';
var $uses = array('Task');
function index() {
$this->set('tasks', $this->Task->findAll(null, null,
'Task.created ASC'));
}
}
?>
http://ホスト名/cake/tasksにアクセスし下記の内容が表示されればOK

