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をダウンロードする
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