CakePHP(以下cake)の情報をまとめておきます。
なお、今回は手元のWindowsPCを使用しました。
今回はWindows8環境を使用するので、「Apache Lounge」にある最新のバイナリを使用します。
「Apache Lounge」http://www.apachelounge.com/
Downloadsページから最新の「Apache 2.4.16 Win64」のアーカイブ「httpd-2.4.16-win64-VC14.zip」をダウンロードします。
解凍したフォルダを任意の場所に配置します。
今回は
「C:\Program Files\Apache24」
にしました。
次に、環境に合わせて設定ファイル「Apache24\conf\httpd.conf」を修正します。
・ServerRoot
ServerRoot "c:/Program Files/Apache24"
・DocumentRoot
DocumentRoot "c:/Program Files/Apache24/htdocs"
<Directory "c:/Program Files/Apache24/htdocs">
...
</Directory>
・CGI
ScriptAlias /cgi-bin/ "c:/Program Files/Apache24/cgi-bin/"
<Directory "c:/Program Files/Apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
・ポート番号
今回は80番ポートを使用するので、デフォルトのままとしました。
Listen 80
・ServerName
定石に従ってlocalhostとします。
#ServerName www.example.com:80
ServerName localhost:80
ひとまず、これでApcheの起動を確認します。
Apacheのサービスは、
Apache24\bin\httpd.exe
なので、これをWindowsのサービスに登録します。
コマンドプロンプトを管理者で起動し(Windowsキー+xで表示されるメニューの「コマンドプロンプト(管理者)」)、上記のファイルを
httpd -k install
で実行します。
コントロールパネルのサービス(ローカル)に「Apche2.4」が追加されます。
今後、Apacheの再起動などもここで行えます。
「http://localhost/」へアクセスし、次のように表示されればApacheは正常に起動しています。
今回はWindows8環境を使用するので、「PHP for windows」にある最新のバイナリを使用します。
「PHP for windows」http://windows.php.net/
最新の5.6.11の64ビット版をダウンロードします。
VC11 x64 Thread Safe (2015-Jul-10 06:25:47)(php-5.6.11-Win32-VC11-x64.zip)
(Non Thread Safe 版の方が上にありますが、何故かApacheとの連携に必要な「php5apache2_4.dll」が入っていなかったのでこちらを使用しました。)
解凍したフォルダを任意の場所に配置します。
今回は
「C:\Program Files\php-5.6.11-Win32-VC11-x64」
にしました。
次に、環境に合わせてAacheの設定ファイル「Apache24\conf\httpd.conf」を修正します。
・モジュールの追加
ライブラリ、
C:\Program Files\php-5.6.11-Win32-VC11-x64\php5apache2_4.dll
が有ることを確認し、httpd.confに下記を追加します。
LoadModule php5_module "c:/Program Files/php-5.6.11-Win32-VC11-x64/php5apache2_4.dll"
・拡張子の関連付け
<IfModule>
...
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
...
</IfModule>
・php.iniファイルの作成
初期状態ではphp.iniファイルが無いので、
php-5.6.11-Win32-VC11-x64\php.ini-development
をコピーし、「php.ini」にリネームします。
・php.iniの配置場所の指定(PHPIniDir)
PHPIniDir "c:/Program Files/php-5.6.11-Win32-VC11-x64"
・Apache+PHPの動作確認
テキストエディタで下記の内容のファイルを作成し、Apacheのドキュメントルート(C:\Program Files\Apache24\htdocs\)に「phpinfo.php」というファイル名で配置します。
<?php
phpinfo();
?>
ウェブブラウザで「http://localhost/phpinfo.php」にアクセスし、下記ページが表示されれば、ApacheからPHPを利用できる状態になっています。
次に環境に合わせて「php-5.6.11-Win32-VC11-x64\php.ini」を修正します。
・拡張モジュール
extension_dir = "c:\Program Files\php-5.6.11-Win32-VC11-x64\ext"
・インクルードパス
include_path = ".;c:\Program Files\php-5.6.11-Win32-VC11-x64\includes;c:\Program Files\php-5.6.11-Win32-VC11-x64\pear"
・日本語利用の為の設定
extension=php_mbstring.dll
...
[mbstring]
...
mbstring.language = Japanese
...
mbstring.internal_encoding = UTF-8
...
mbstring.http_input = pass
...
mbstring.http_output = pass
...
mbstring.encoding_translation = Off
...
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
...
mbstring.substitute_character = none
...
extension=php_intl.dll
・タイムゾーンの設定
date.timezone = Asia/Tokyo
修正した内容は「http://localhost/phpinfo.php」で確認できます。
CakePHPのサイトから最新版をダウンロードします。
「CakePHP」http://cakephp.org/
ダウンロードページから
cakephp-3-0-10.zip
をダウンロードし、任意の場所に展開します。
今回は
「D:\work\PHP\CakePHP\cakephp_3_0_10」
にしました。
(Apacheのドキュメントルートに展開すれば下記の設定は不要ですが、Program Files配下にWebケーションを置きたくないので作業ディレクトリに配置しました。)
次に、このディレクトリをApacheから参照できるように「Apache24\conf\httpd.conf」を修正します。
・エイリアス
<IfModule alias_module>
...
Alias /cake/ "D:/work/PHP/CakePHP/cakephp_3_0_10/"
<Directory "D:/work/PHP/CakePHP/cakephp_3_0_10">
Allow from all
</Directory>
</IfModule>
・ディレクトリ権限
<Directory />
# AllowOverride none
# Require all denied
Options FollowSymLinks
AllowOverride All
</Directory>
・URLリライト
LoadModule rewrite_module modules/mod_rewrite.so
・PHPハンドラ―
AddHandler php5-script .php
次にデータベース接続設定をします。
・DLL
php-5.6.11-Win32-VC11-x64\php.ini
extension=php_pdo_mysql.dll
・接続情報(データベース、ユーザは別途作成しておきます。)
D:\work\PHP\CakePHP\cakephp_3_0_10\config\app.php
(このファイルは初期状態では無いのでapp.default.phpをコピーして作成しました。)
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'nonstandard_port_number',
'username' => 'cake_user',
'password' => 'cake_pass',
'database' => 'cake_db',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'Security' => [
// 'salt' => '__SALT__',
'salt' => '__MYAPP__',
],
「http://localhost/cake/index.php」にアクセスして以下のページが表示されれば正常に動作しています。
written by Shinji Kamei