Windows+Apache+CakePHP3 環境構築
環境
- Windows Server 2016 64bit ja
- Apache 2.4.23
- PHP 7.0.12
- PostgreSQL 9.6.0
サーバ構築
Apache
参考
http://www.adminweb.jp/apache/
Apache LoungeからWindows版Apacheを入手する。
https://www.apachelounge.com/
Apacheバージョンに合ったVisual C++ 再頒布可能パッケージをインストールする。
Apache24を解凍し、C直下に配置する。
必要ならhttpd.confのServerRoot, DocumentRoot, ServerName等を環境に合わせて書き換える。
必要なら使用するポートを変更する。
Listen 80
サービスに登録して起動する。
コマンドプロンプトでhttpd.exeがあるディレクトリで以下のコマンドを実行。
httpd -k install
httpd -k start
外部からアクセスする場合、80番ポートを開放する。
http://symfoware.blog68.fc2.com/blog-entry-1231.html
Windowsが64bitの場合、Apacheのバグでサーバー不調になる可能性がある。
あらかじめ以下の作業を行っておいた方がよい。
http://toshy7302104.cocolog-nifty.com/soliloquist/2015/10/apache-win64-c7.html
https://ah-2.com/2015/07/30/apache_win_not_respond.html
PHP
PHPディレクトリをC直下に配置する。
モジュール追加する。
LoadModule php7_module c:/php/php7apache2_4.dll
拡張子を登録する。
<FilesMatch "\.php$">
AddHandler php7-script .php
AddType application/x-httpd-php .php
</FilesMatch>
php.iniの場所を指定する。
php.ini-development または php.ini-production をコピーして php.ini にリネームする。
PHPIniDir "c:/php"
拡張モジュールのディレクトリ設定
extension_dir = "c:\php\ext"
タイムゾーンの設定
date.timezone = Asia/Tokyo
Windowsのシステム環境変数PathにPHPの場所を追加する。
Apacheを再起動する。
PostgreSQL
参考
http://lets.postgresql.jp/documents/tutorial/windows/
インストーラからインストールする。
- Port: 5432
- Locale: C
extension=php_pdo_pgsql.dll
デフォルトでは postgres というDBができている。
必要に応じてユーザ、DBを作成しておく。
さらにデフォルトではローカルからしかDBにアクセスできないので、外部からアクセスするなら以下の設定を行う。
http://qiita.com/seagal18/items/23977bd5d49c140f83ea
CakePHP3導入
前準備
Apache
mod_rewriteを有効化
LoadModule rewrite_module modules/mod_rewrite.so
.htacessの設定
<Directory "c:/Apache24/htdocs">
~~~
</Directory>
この下に追記
<Directory "C:/Apache24/htdocs/cakephp(プロジェクト名)">
Options FollowSymLinks
AllowOverride All
</Directory>
PHP
mbstringを有効化
extension=php_mbstring.dll
[mbstring]
mbstring.language = Japanese
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character = none
mbstring.func_overload = 0
intlを有効化
extension=php_intl.dll
intl.default_locale = en_utf8
intl.error_level = E_WARNING
openSSLを有効化
extension=php_openssl.dll
Composer
インストーラでインストールしてサーバ再起動。
セットアップ
プロジェクト作成
コマンドプロンプトでC:\Apache24\htdocsに移動し、以下のコマンドを実行する。
composer create-project --prefer-dist cakephp/app cakephp(プロジェクト名)
http://localhost/cakephp/ にアクセスしてCakeの画面が出るか確認する。
この時点ではデータベースにバツマークがついているはず。
PostgreSQL接続
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'persistent' => false,
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'ユーザー名',
'password' => 'パスワード',
'database' => 'DB名',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
'quoteIdentifiers' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_URL', null),
],
]
上記バツマークが消えることを確認する。
検索プラグイン FriendOfCake/search
https://github.com/FriendsOfCake/search
Conposerを使ってインストールする。
コマンドプロンプトで以下のコマンドを実行。
composer require friendsofcake/search
プラグインのロード
cake plugin load Search