Hatena::ブログ(Diary)

放浪するエンジニアの覚え書き このページをアンテナに追加 RSSフィード

2014-10-20

CakePHP2.5.5を使ってみる。

| 14:57 | CakePHP2.5.5を使ってみる。のブックマークコメント

以前、CakePHP1.3.6を一通りレビューした(こちらから一連のログがある)が、訳あってCakePHPをまた使ってみることになった。

以前のレビューに沿って、Cake2.5.5をMacOX+XAMPP+Eclipseでレビューする。

実行要件

Cake2.xの要件Cake book 2.xで見ると

と書いてある。

XAMPPは随分前にいれた1.7.3なので若干心配になってチェックをした。

まず、mod_rewriteは「アプリケーション」→「XAMPP」→「etc」のhttpd.confをみればよい。

f:id:tetsuya_odaka:20141020142146p:image

Cakeは.htaccessを使うので、AloWOverrideのところも見ておく。httpd.confの主要なところは以下。

…
LoadModule rewrite_module modules/mod_rewrite.so
…
<Directory />
    Options FollowSymLinks
    AllowOverride All
    #XAMPP
    #Order deny,allow
    #Deny from all
</Directory>
…

自分のPCではEclipseワークスペースにaliasを設定している。

Alias /workspace "/Users/tetsuya/Documents/workspace/"
<Directory "/Users/tetsuya/Documents/workspace">
Allow from all
</Directory>

次にPHPMySQLのバージョンを確認しておく。XAMPP(のApacheMySQL)を起動しておけば

http://localhost/phpmyadmin

phpMyAdminを開くことができる。

MySQLが5.1系、phpが5.3系なので問題なさそう。

f:id:tetsuya_odaka:20141020143325p:image


CakePHPダウンロード

CakePHP本家サイトよりCakePHP2.5.5をダウンロードする。

Eclipseにcake-2.5.5というPHPプロジェクトを作成し、そこに解凍をする。

f:id:tetsuya_odaka:20141020141134p:image


.htaccessの編集

プロジェクト直下、app下、webroot下にある.htaccessのRewriteBaseを以下のように書き直す。

プロジェクト直下の.htaccess
<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase 	  /workspace/cake-2.5.5/
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>
プロジェクト/app/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase  /workspace/cake-2.5.5/app/
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

プロジェクト/app/webroot/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase  /workspace/cake-2.5.5/app/webroot/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

app/Config/core.phpのcypherを修正する。

/**
 * A random string used in security hashing methods.
 */
	Configure::write('Security.salt', '[適当な30文字の文字列]');

/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
	Configure::write('Security.cipherSeed', '[適当な30文字の文字列]');

とりあえず、これで準備は完了。


app/Config/core.phpとbootstrap.phpCacheエラーの対応をする。

CakePHP2からCacheのアクセス権でエラーが出るようになったので、iwakingさんのブログを参考にcore.phpとbootstrap.phpを修正する。

core.phpを修正する。

Cache::config('_cake_core_', array(
	'engine' => $engine,
	'prefix' => $prefix . 'cake_core_',
	'path' => CACHE . 'persistent' . DS,
	'serialize' => ($engine === 'File'),
	'duration' => $duration,
	'mask'=>0666 //ここ
));

/**
 * Configure the cache for model and datasource caches. This cache configuration
 * is used to store schema descriptions, and table listings in connections.
 */
Cache::config('_cake_model_', array(
	'engine' => $engine,
	'prefix' => $prefix . 'cake_model_',
	'path' => CACHE . 'models' . DS,
	'serialize' => ($engine === 'File'),
	'duration' => $duration,
	'mask'=>0666 //ここ
));

bootstrap.phpに以下を追記する。


Cache::config('default', array(
'mask' => 0666,
));

app/tmpに書き込み権限をつける

/workspace/cake-2.5.5/appにcdして、

chmod -R 777 tmp

としてtmp配下に書き込み権限を付与する。


アクセスしてみる

http://localhost/workspace/cake-2.5.5

へアクセスしてみる。とりあえずOKのようだ。

f:id:tetsuya_odaka:20141020145637p:image

リンク元