CakePHP3の環境構築 Windows + XAMPP編

CakePHP3の環境構築 Windows + XAMPP編

Category:雑記Tags:, ,
この記事のまとめ

症状1
composer で intl extension を要求されます。

対処1
XAMPP の php.ini を編集しました。

症状2
タイムゾーンの設定を行うと、'Unknown or incorrect time zone' の SQL エラーが発生します。

対処2
mysql の公式のページから time_zone 関連のデータをダウンロードしてインストールしました。

私は Windows と XAMPP で ローカルで LAMP 環境を構築し、開発環境として作業をしているのですが、フレームワークとしてCakePHP3を採用した時にハマった事とその対処方法と手順をメモしてみました。
Windows10 と XAMPP for Windows 5.6.15 での環境構築です。

我々ハintl extension ヲ要求スル。 intl extension ヲ有効ニセヨ

何も考えずにgithub に書いてある通りにCakeをインストールすると…

C:\xampp\htdocs>composer create-project --prefer-dist cakephp/app app_name
composer
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

Problem 1
- cakephp/cakephp 3.2.1 requires ext-intl * -> the requested PHP extension intl is missing from your system.
- cakephp/cakephp 3.2.1 requires ext-intl * -> the requested PHP extension intl is missing from your system.
- Installation request for cakephp/cakephp 3.2.1 -> satisfiable by cakephp/cakephp[3.2.1].

To enable extensions, verify that they are enabled in those .ini files:
- C:\xampp\php\php.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Σ(゚口゚;ハゥァ!!
composer 先生から intl extension が有効になっていない件について詳細に問い詰められました。

 

intl extension のエラーの対処

XAMPP は初期状態で intl extension が無効になっているようなので有効にする必要があります。

;extension=php_intl.dll

 

早速コントロールパネルから php.ini を開いて、、、
intl-min

 

intl extension を有効にして、、、

extension=php_intl.dll

 

Apacheを再起動してから 再度 composer からコマンドを投入すると無事 Cake のインストールが完了。
(‘A`) アリガト composer センセイ。

Error: SQLSTATE[HY000]: General error: 1298 Unknown or incorrect time zone: 'Asia/Tokyo'

Cake のインストール完了後、タイムゾーンの設定を実施。

config/bootstrap.php のタイムゾーンを変更して、、、

date_default_timezone_set ( 'Asia/Tokyo' );

config/app.php の Datasources のタイムゾーンを変更すると、、、

'timezone' => 'Asia/Tokyo',

あら不思議。

logo-mysql-min

Error: SQLSTATE[HY000]: General error: 1298 Unknown or incorrect time zone: ‘Asia/Tokyo’

timezone1-min
∑(‘□’;)ウゴカンガナ!!
mysqlさんがヘソを曲げてしまい動きません。

 

time zone のエラーの対処

timezone2-min
どうやら mysql の time_zone 関連のテーブルが軒並み空っぽになっているのが原因みたいです。
mysqlの公式サイトでtime_zone 関連のデータが配布されているようなのでコレを使って対応をします。

 

timezone3-min
まずはXAMPP の mysqlを停止して、、、
ご注意XAMPP の mysqlを停止させておかないと、ファイルロックがかかって、 time_zone* を上書きできません。

 

timezone4-min
公式サイトから timezone packages for 5.6 の Zipをダウンロードして解凍。
解凍したフォルダ内の time_zone* で C:\xampp\mysql\data\mysql のフォルダー内のものを上書きします。

 

timezone5-min
XAMPP の mysql を起動します。

 

timezone6-min
すると time_zone 関連のデータを確認できるようになります。

 

timezone7-min
Cakeもばっちり動作するようになります。

 

(‘A`) カイハツカンキョウ デキタヨ

スポンサーリンク

コメント (0)

コメントをどうぞ

注意プライバシーポリシーに同意の上で送信ください。

注意お名前は公開されます。
補足メールアドレスは公開されません。

関連記事

CakePHP3の環境構築 Amazon Linux編

CakePHP3の環境構築 Amazon Linux編

Category:雑記Tags:,

この記事のまとめ 症状1 composer で intl extension を要求されます。 対処1 yum で使用している PHP のバージョンにあった intl extension をインストールしました。 症状2…