0mQwZ7_fWmuEpjpIb4spwMw_m2UBeAHERC-XBv4vX_g

[IT] CakePHP on XAMPP の初期設定

■[IT] CakePHP on XAMPPの初期設定

下北沢オープンソース Cafe http://www.osscafe.net/ で「8時間耐久CakePHP」Jelly!
2012/1/25(水) 10:00〜20:00 (途中休憩2時間)
開催内容:初心者がCakePHP使いになるまでを、Yusuke Andoさんがしごいてくれる模様です♪
https://www.facebook.com/events/279943722066633/
※図書室側は、通常Jellyです。

という案内を見かけたので・・・

何となく面白そうだったので特に何も考えず Windows マシンで参加しました。

===

私以外の参加者全員マカーという away 感たっぷり。しかしメゲナイ。 Windows が大好きだ!
何と言われようと、MAMP ではなく WAMP, WISP で動作させたい。しかし時間がない。そこで、XAMPP だ。

■環境構築:

1.必要ファイルを入手します。

– XAMPP –

http://www.apachefriends.org/jp/xampp-windows.html#2671

⇒ xampp-win32-1.7.7-VC9.zip を C:xampp へ解凍展開。

– CakePHP 2.0.5 安定板 –

https://github.com/cakephp/cakephp/zipball/2.0.5 

⇒ cakephp-cakephp-2.0.5-0-g339259c.zip を C:xampphtdocscake へ解凍展開
( C:xampphtdocscake は mkdir しといてください )

2.XAMPP 環境ファイルを修正します。

– php.ini / PDO 廻り –

⇒ C:xamppphpphp.ini

経験則で XAMPP は エクステンション DLL を読み込めないので、明示的にロードファイルとして定義しなおす。

C:WindowsSystem32 配下へ DLL を配置するという暴挙はしたくないw

;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql_mysqlnd.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pdo_sqlite_external.dll
LoadFile C:/xampp/php/ext/php_pdo.dll
LoadFile C:/xampp/php/ext/php_pdo_firebird.dll
LoadFile C:/xampp/php/ext/php_pdo_mysql.dll
LoadFile C:/xampp/php/ext/php_pdo_odbc.dll
LoadFile C:/xampp/php/ext/php_pdo_sqlite.dll

↑ 認識しやすいように分離しましたが、実際は同一 php.ini 内です。

– http.conf  / サービスポートの変更  –

⇒ C:xamppapacheconfhttpd.conf

※ IIS 等で TCP#80 を使用している方のみ。 私は今回 CakePHP を TCP#88 で動作させました。

単純にリッスンポートを変更するだけです。

#Listen 0.0.0.0:80
#Listen [::]:80
Listen 88

– Apache にファイル追加。 .htaccess – 

C:xampphtdocscake.htaccess を配置します(CakePHP 動作必須です)

<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

余談

Apache .htaccess に相当する IIS web.config は次の通り。

<?xml version="1.0" encoding="UTF-8"?>
<configuration> <system.webServer> <rewrite> <rules> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions>
<action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true"> <match url="^$" ignoreCase="false" /> <action type="Rewrite" url="/" /> </rule> <rule name="Imported Rule 3" stopProcessing="true"> <match url="(.*)" ignoreCase="false" /> <action type="Rewrite" url="/{R:1}" /> </rule> <rule name="Imported Rule 4" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer>
</configuration>

3.ここまでで初期動作確認

xampp の初期画面と phpinfo() を表示します。

その前に XAMPP コンパネアプリで、Apache と MySQL のみサービス起動します。このとき Apache started [ Port 80] と表示していますが問題ありません(このブログでは TCP#88 で動作させます)。

xampp の初期画面と phpinfo() を表示します。

まずは、http://localhost:88/xampp/

次に、http://localhost:88/xampp/phpinfo.php

phpinfo() 内で、MySQL, PDO 項目が存在することも確認しましょう。

MySQL パスワード設定と DB と Table 作成しましょう。

phpMyAdmin を使ってもいいのですが、コマンドのほうが絶対に早くてカンタンなので(初期設定のみ)

赤枠内が入力内容。(既にパスワード設定済み& VS2010 x64 環境のコマンドプロンプトw)

ここまでで、 cake2 という DB に FOO テーブルを作成しました。

仮に root パスワードが ‘hoge123’ である場合に、何らかの DB アクセスするソースがある場合

//DBの接続情報
$user = 'root';
$pass = 'hoge123';
$name = 'cake2';

このようにすれば接続可能です。

4.cakePHP 内のファイル修正

C:xampphtdocscakeappConfig にある core.php と database.php を修正します。

– core.php の修正 –

ふざけていません。大いに真面目です。

/** * A random string used in security hashing methods. */ Configure::write('Security.salt', 'hogehoge123');
/** * A random numeric string (digits only) used to encrypt/decrypt strings. */ Configure::write('Security.cipherSeed', '0120444444');

– databese.php の修正 –

databese.php.default から databese.php へ rename してから修正します。

class DATABASE_CONFIG {
public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => 'hoge123', 'database' => 'cake2', 'prefix' => '', //'encoding' => 'utf8', );

 

=====

以上が大体の設定内容です。

引き続き、環境構築は問題なく進行できると思います。

試しに、 http://localhost:88/cake/ で次のようにコントローラが見当たらないという表示が出れば基本的なフレームワークは動作していることが確認できます。

またディスパッチャな遊びになれてくると・・・

このように任意のメッセージをコントローラ単位で表示させることも出来ます。

php を safemode 動作させると、ワーニング表示しますが気にせずに Test Suite 2.0 を使った簡易検証を行うこともできます。

CakePHP Test Suite 2.0 は、http://localhost:88/cake/app/webroot/test.php から動作可能です。

引き続き、CakePHP の自己学習には @yando さんのスライドシェアをご参照ください。

⇒ http://www.slideshare.net/yandod/8cakephp

 

以上

 

 

 

 

Comments are closed.