EC-CUBE4系のカスタマイズや開発を行う際、windowsのMAMPを用いてローカル環境を構築しようとするとエラーが出て手間がかかったため備忘録として残します。同じようなエラーが発生した方の参考になると幸いです。
MAMPのダウンロードとインストール
今回はMAMP環境が前提となりますのでMAMPのインストールがお済みでない場合はMAMP公式サイトよりダウンロードを行ってください。
上部メニューの「Downloads」をクリックしDownload MAMP & MAMP PROページへ移動します。該当するOSを選択しダウンロード、手順に沿ってインストールを行ってください。
EC-CUBE4をダウンロード
続いてEC-CUBE4系をダウンロードします。こちらも公式サイトへアクセスし、最新のバージョンをダウンロードします。
MAMP内へEC-CUBEを配置
先ほどダウンロードしたEC-CUBEを解凍し、MAMPのhtdocsフォルダに入れます。
EC-CUBE4系の推奨環境について
まずEC-CUBE4系の推奨環境は下記となっています。
- PHP7.1以上
- MYSQL 5.6以上
MAMPのメニューよりMAMP>Preferences>PHPより推奨環境のPHPバージョンに設定します。今回はphp7.2.14を選択しました。
データベースの作成
phpMyAdminへアクセスし、データベースの作成をします。
- データベース名:eccube4(例)
- 照合順序:utf8_general_ci
.envファイルの設定
上記までで「localhost」にアクセスし、インストールもしくは「.env」ファイルを編集します。
「DATABASE_URL=」という項目があるので
DATABASE_URL=mysql://root:root@localhost/eccube4
#DATABASE_URL=mysql://ユーザー名:パスワード@ホスト/データベース名
と設定します。
エラー「intl拡張モジュールが有効になっていません」について
ここまでの状態でlocalhostへアクセスし画面を表示すると以下のようなエラーが表示されました。
intl拡張モジュールを有効にします。これを有効にするにはMAMPのphp.iniの設定を行います。
php.iniファイルの変更
今回はPHP7.2.14を使用しているため下記のphp.iniを変更します。
MAMP/conf/php7.2.14/php.ini
「php.ini」を開くとコントロール+Fもしくはコマンド+Fで「intl」と検索します。このような行が見つかります。
;extension=intl
先頭の「;」を外して有効化します。
extensions=intl
有効になったかどうかの確認をするには、MAMPの「Open WebStar page」を開き「phpinfo」へアクセスします。
コントロール+Fもしくはコマンド+Fで「intl」と検索し、intlが表示されるとOKです。
タイムアウトの設定
ついでにタイムアウトと、時間の設定も行っておきましょう。
「max_execution_time」という項目があります。
デフォルトでは以下のように30秒でタイムアウトとなる設定になっていますmax_exection_time=30
動作環境が遅くタイムアウトの発生を防ぐために数値を大きくすることをおすすめします。60秒に設定するにはこのようになります。
max_execution_time = 60
タイムゾーンの設定
また時間の設定ですが
date.timezone = Asia/Tokyo
に変更します。ログを正しい時間で確認できるため設定することを推奨します。
ログは、MAMP>logs>phperror.logで確認できます。
環境変数の設定
もし上記まででもうまく行かなかった場合は環境変数の設定をします。
[Windows]キー+[Pause/Break]キー>システムの詳細設定もしくは、[Windows]キー+[R]キー「sysdm.cpl」と検索します。
環境変数>Path>編集>新規>C:\MAMP\bin\php\php7.2.14
必要であればPCを再起動してください。
これでうまくEC-CUBEの表示ができました。