Windows環境にeccube4系の環境を作ってみました。
その際の構築メモとなります。
WindowsはSymfonyとの相性が悪く、動作が重くなってしまう印象を持っています。
できるだけ快適に開発が出来るように、VagrantとかDockerを使わずに構築しました。
メモリ8GBでしたが、なんとか開発は出来る感じにはなりました。 (おすすめはしません。macOSでローカル環境を作るほうが高速に動作します。 )
また、symfony/cliを利用してssl証明書を発行しており、 httpsでローカル環境の動作確認ができる方法となっています。
VirtualBoxを利用し、仮想マシンMSEdge on Win10を使用してWindows環境を作成しました。
参考: https://do-wp.com/build-a-windows-operating-environment-on-mac-with-virtualbox/
また、phpは7.3.26、MySQLは5.7.18です。
Chocolateyを利用してパッケージをWindows環境にインストールします。
まずは、Chocolatey
をインストールしましょう。
PowerShellを管理者権限で起動します。
https://chocolatey.org/installのページのインストールコマンドをPowershellで実行します。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
以下の様になっていれば、インストール完了です。
choco
Chocolatey v0.10.15
choco
を実行するとバージョンが確認できます。
また、choco list -lo
でインストールしたパッケージを確認できます。
それでは必要なパッケージをインストールしていきます。
--version
でバージョン指定ができます。
-y
はすべてYesで答えることができるオプションです。
vcredist2013
は、C++ アプリケーションを実行するために必要なランタイムコンポーネントで、MySQLを実行時に必要なためインストールしています。
choco install php --version=7.3.26 -y
choco install git -y
choco install vscode -y
choco install vcredist2013 -y
choco install mysql --version=5.7.18
Git bashを管理者として実行します。
ここでは、eccubeで必要な拡張モジュールを有効化します。
(Windowsでは.dll
という拡張子がモジュールのファイルです。)
また、初期設定値もいくつか変更します。
デフォルトの挙動ではコマンドで|
(パイプ)が使えないため、.bash_profileに以下を追記します。
cd ~
echo 'exec winpty bash' >> ~/.bash_profile
参考: https://qiita.com/amanoese/items/7b237e8703c3b4c7f001
https://xdebug.org/wizard でphp -iの出力を貼り付けると、必要なxdebugのファイルがを教えてくれます。
今回の場合は、php_xdebug-3.0.2-7.3-vc15-nts-x86_64.dll
をダウンロードします。
https://xdebug.org/download
よりダウンロードできます。
ファイル名が複数ありよく似ているので、ダウンロードリンクをしっかり確認しましょう。
mv ~/Downloads/php_xdebug-3.0.2-7.3-vc15-nts-x86_64.dll /c/tools/php73/ext/
eccube4に必要な拡張を追加していきます。
vim /c/tools/php73/php.ini
extension=curl
extension=fileinfo
extension=gd2
extension=intl
extension=mbstring
extension=mysqli
extension=openssl
extension=pdo_mysql
zend_extension=php_opcache.dll
zend_extension=php_xdebug-3.0.2-7.3-vc15-nts-x86_64.dll
xdebug.mode=debug
xdebug.start_with_request=yes
html_errors = On
max_execution_time = 120
opcache.enable=On
opcache.enable_cli=On
/c/tools/mysql/current/bin/mysqld.exe --initialize --console --explicit_defaults_for_timestamp
[Note] A temporary password is generated for root@localhost: *fWCWpKEj0ou
ここで上記のようにrootユーザーの仮パスワードが作成されるので、メモしておきましょう。
/c/tools/mysql/current/bin/mysqld.exe --install
Windowsのサービスが追加され、MySQLの起動、停止ができるようになります。 GUI(サービス)でも確認できます。
net start mysql
net stop mysql
仮パスワードでログインします。
mysql -u root -p
パスワード設定と、DB作成です。
mysql > ALTER USER 'root'@'localhost' IDENTIFIED BY 'fsd!fjgi9';
mysql > CREATE DATABASE eccube4 DEFAULT CHARACTER SET utf8mb4;
開発用サーバーはMailHogが便利です。 https://github.com/mailhog/MailHog/releases/v1.0.0 MailHog_windows_amd64.exe をダウンロードし、適当な場所に保存しておきます。
デスクトップに保存した場合、以下で起動します。
~/Desktop/MailHog_windows_amd64.exe
またクライアントはブラウザで以下のURLにアクセスすると確認できます。
https://symfony.com/download
よりsetup.exe
をダウンロードしてインストールします。
Git bashを再起動するとsymfonyコマンドが実行できるようになります。
symfony server:ca:install
composerはデフォルトでは2系がインストールされますが、 現時点でeccube4が対応していないため、 バージョン指定を行っています。
cd ~
mkdir dev
cd dev
git clone git clone https://github.com/EC-CUBE/ec-cube.git
cd ec-cube/
curl -sS https://getcomposer.org/installer | php -- --version=1.10.20
php composer.phar install
symfony server:start
Server起動後、localhost:8000
にアクセスするとインストール画面が起動します。
主な設定は以下です。
また、symfony/cliでローカルサーバーを使用した場合、index.phpに上記の修正が必要となります。
参考: https://qiita.com/nanasess/items/de9f5450717cc8ede51a
// index.phpに以下を追記
if (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Symfony') !== false) {
$_SERVER['SERVER_NAME'] = '127.0.0.1';
}