CakePHP(導入編)

CakePHP(以下cake)の情報をまとめておきます。
なお、今回は手元のWindowsPCを使用しました。

Apacheのインストール
今回はWindows8環境を使用するので、「Apache Lounge」にある最新のバイナリを使用します。
「Apache Lounge」http://www.apachelounge.com/

http://www.apachelounge.com/

Downloadsページから最新の「Apache 2.4.16 Win64」のアーカイブ「httpd-2.4.16-win64-VC14.zip」をダウンロードします。
解凍したフォルダを任意の場所に配置します。
今回は
「C:\Program Files\Apache24」
にしました。
スクリーンショット 2015-08-04 12.28.54

次に、環境に合わせて設定ファイル「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の再起動などもここで行えます。
スクリーンショット 2015-08-04 13.25.52

「http://localhost/」へアクセスし、次のように表示されればApacheは正常に起動しています。

PHPのインストール
今回はWindows8環境を使用するので、「PHP for windows」にある最新のバイナリを使用します。
「PHP for windows」http://windows.php.net/

http://windows.php.net/download/

最新の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」
にしました。
スクリーンショット 2015-08-04 14.12.19

次に、環境に合わせて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を利用できる状態になっています。
スクリーンショット 2015-08-04 14.36.22

次に環境に合わせて「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のサイトから最新版をダウンロードします。
「CakePHP」http://cakephp.org/

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」にアクセスして以下のページが表示されれば正常に動作しています。
スクリーンショット 2015-08-04 15.44.35
スクリーンショット 2015-08-05 13.20.03


written by Shinji Kamei