仮想マシンにECCube4をインストールする

# 目次
1. システム要件をチェック
1. CentOS7をインストール
1. MySQL5.7.38をインストール
1. Apache2.4.6をインストール
1. PHP7.4.30をインストール
1. ApacheでPHPを動作させる環境を構築
1. ECCube4をダウンロード
1. ECCubeのファイルをホストからゲストへアップロード
1. ECCubeの詳細設定





## 1. システム要件をチェック
ECCube公式サイトの[システム要件](https://doc4.ec-cube.net/quickstart/requirement)を元に、ECCube4をインストールする際に必要なアプリケーションとそれぞれのバージョンを確認する。

#### インストールするアプリケーションとバージョン一覧
1. CentOS7
1. MySQL5.7.38
1. Apache2.4.6
1. PHP7.4.30





## 2. CentOS7をインストール
[CentOS7のダウンロードと仮想マシンの作成](https://www.wantanblog.com/entry/2019/08/19/172041)
この記事の手順に沿ってCentOS７のダウンロードと、仮想マシンを作成する。





## 3. MySQL5.7.38をインストール
```:ターミナル
>mariaDB削除
$ sudo systemctl stop mysqld
$ sudo yum -y remove mariadb-libs
$ sudo yum -y remove mysql-community-*
$ sudo rm -rf /var/lib/mysql/

>MySQL5.7のリポジトリインストール
$ sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

＞インストールしたリポジトリを有効にする
$ sudo yum repolist all | grep mysql
$ sudo yum-config-manager --disable mysql80-community
$ sudo yum-config-manager --enable mysql57-community
$ sudo yum repolist all | grep mysql

>ダウンロードできるバージョン確認
$ sudo yum list | grep mysql-community-server
```
公開鍵が期限切れを起こし、MySQLがインストールできない場合があるので、公開鍵を最新版にする。
```:ターミナル
$ sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
```
MySQL5.7.38をインストールする
```:ターミナル
$ sudo yum -y install mysql-community-server

>MySQLのパージョン確認
$ sudo mysqld --version

>MySQLの自動起動設定
$ sudo  systemctl enable mysqld
```

MySQLに接続する前に、
初期化された一時パスワードを確認する。
```:ターミナル
$ grep "temporary password" `find /var/log/ -name "mysql*log"`
```
初期化されたパスワードがある場合MySQLへ接続できるが、
初期化されたパスワードがない場合がある。
↓パスワードがない場合実行
```:ターミナル
>パスワードをリセットしてパスワードがなくてもログインできるようにする
$ sudo systemctl stop mysqld
$ sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
$ sudo systemctl start mysqld &
$ mysql -u root
$ use mysql;
$ UPDATE mysql.user SET authentication_string=null WHERE User='root';
$ FLUSH PRIVILEGES;
$ quit;
$ sudo systemctl stop mysqld
$ sudo systemctl unset-environment MYSQLD_OPTS
$ systemctl start mysqld
```
MySQLに接続して新しいパスワードを設定する
```:ターミナル
$ mysql -u root
$ SET PASSWORD = PASSWORD('@Hatti7900');

```




## 4. Apache2.4.6をインストール
```:ターミナル
>CentOS7 のyumリポジトリで提供されている Apache httpd を確認
$ yum info httpd　

>httpdをインストール
$ sudo yum install httpd

>httpdのバージョン確認
$ httpd -version　

>Apache起動
$ systemctl start httpd.service

>起動の確認
$ sudo systemctl status httpd.service　→ Active: active (running)
```





## 5. PHP7.4.30をインストール
```:ターミナル
>Remi repository をインストール
sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

>PHP 7.4をインストール
sudo yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-
mysqlnd php-pecl-mysql

>phpのバージョン確認
php -v  　
```




## 6. ApacheでPHPを動作させる環境を構築
```:ターミナル
>Apacheのドキュメントルート直下にphp.indexを作成し、ファイルを編集する
$ sudo vi /var/www/html/index.php　
>index.phpファイル内
<?　php　phpinfo();　?>
```
VirtualBoxのポートフォワーディング機能を使ってWebページへアクセスできるようにする
1. VirtualBoxの実行マシンの設定をクリック
1. 設定の中の「ネットワーク」をクリック
1. 「高度」の中にある「ポートフォワーディング」をクリック
1. 以下のように設定し「OK」ボタンをクリック
![スクリーンショット 2022-07-26 17.23.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/45029ab2-366e-83b3-8a63-1563774fb902.png)
http://localhost:8888/　　
でアクセスして、php.infoが表示されるか確認する。





## 7. ECCube4をダウンロード
ECcubeの[公式ページ](https://www.ec-cube.net/download/)の「ダウンロード版を試す」からダウンロードする。
zipファイルを解凍する。




## 8. ECCubeのフォルダをホストからゲストへアップロード
```:ターミナル
>sftpへ接続
user@USERnoMacBook-Pro Downloads % sftp -P 2222 hachiya@localhost

>sftpでフォルダをゲストへアップロード
sftp> put -r /Users/user/Downloads/eccube

>アップロードしたフォルダをドキュメントルートに移動する
$ mv /home/hachiya/eccube /var/www/html/
```




## 9. ECCubeの詳細設定
localhost:8888/eccube/index.php でアクセスする
![スクリーンショット 2022-07-18 21.21.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/3b629aeb-df33-69e6-0a1a-a5dc73c3ff8c.png)

zip拡張モジュールをインストールして、有効にする
```:ターミナル
>PHPバージョン、リポジトリを確認
$ sudo yum list installed | grep php

>php-zipをインストール
$ sudo yum install --enablerepo=remi-safe php74-php-zip

>インストールされたか確認
$ sudo yum list installed | grep php

>php-zipモジュールファイルの場所を特定し、リンクを張る
$ sudo find / -name "*zip.so"　
$ sudo ln -s  /opt/remi/php74/root/usr/lib64/php/modules/zip.so /usr/lib64/php/modules/zip.so

>php.iniに追記
$ sudo vi /etc/php.ini -> extension=zip.so

>Apache再起動
$ sudo systemctl restart httpd
```
![スクリーンショット 2022-07-18 22.33.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/f911d59a-64cc-91e9-73fb-604a7571ed04.png)


intl拡張モジュールをインストールして、有効にする
```:ターミナル
>php-intlをインストール
$ sudo yum install --enablerepo=remi-safe php74-php-intl

>インストールされたか確認
$ sudo yum list installed | grep php

>php-intlモジュールファイル(intl.so)の場所を特定し、リンクを張る
$ sudo find / -name "*zip.so"　→ /opt/remi/php74/root/usr/lib64/php/modules/intl.so
$ sudo ln -s  /opt/remi/php74/root/usr/lib64/php/modules/intl.so /usr/lib64/php/modules/intl.so

>Apache再起動
$ sudo systemctl restart httpd
```
![スクリーンショット 2022-07-18 22.54.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/9858a3fa-4cea-e20a-74bd-5f275871174a.png)
「次へ進む」を押す
![スクリーンショット 2022-07-19 15.36.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/cfcb42ad-b6c3-7ef9-6ca0-9aec1c5fc210.png)
```:ターミナル
>書き込み権限を有効にする
$ sudo chmod -R 777 /var/www/html/eccube/app/
$ sudo chmod -R 777 /var/www/html/eccube/html/
$ sudo chmod -R 777 /var/www/html/eccube/vendor/
```
「更新する」を押す
![スクリーンショット 2022-07-19 16.20.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/25a69591-7b9d-accd-0b48-4b587974a12a.png)
「次へ進む」を押す
![スクリーンショット 2022-07-27 11.36.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/ef8e8c14-b651-65f5-e13c-2ec4b80f7916.png)
必要事項を入力して「次へ進む」を押す
![hachiva01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/239d4e76-fade-baf5-b09e-b21393f4f609.png)
前もってMySQLで空のデータベースとユーザーを作成して、その情報を入力する。
「次へ進む」を押す。
![スクリーンショット 2022-07-19 17.43.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/0a2cb23e-41cd-b19d-f517-22c9d128cac1.png)
チェックは入れずに、「次へ進む」を押す。
![スクリーンショット 2022-07-19 17.47.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746950/69f5abad-ed57-fe80-fdf7-06acf425d2b1.png)
この画面がでた場合、ECCubeのインストールが完了した。





## ECCube関連コマンド一覧
下記のページにECCube4のインストールで使用したコマンドをまとめている
[ECCube関連コマンド一覧](https://qiita.com/hatti_engineer/items/630673edb108703346e4)






## 参考資料
https://doc4.ec-cube.net/quickstart/requirement
https://pc-karuma.net/mac-virtualbox-install/
https://www.wantanblog.com/entry/2019/08/19/172041
https://trios.pro/mysql-centos7-install/
https://blog.katsubemakito.net/mysql/mysql-update-error-gpg
https://qiita.com/zaburo/items/943671aa857806539ffe
https://weblabo.oscasierra.net/apache-installing-apache24-yum-centos7-1/
https://www.ec-cube.net/download/
https://tinybeans.net/blog/2021/09/requires-ext-zip
https://teratail.com/questions/179785
https://labor.ewigleere.net/2020/03/23/centos8-php74-ziparchive-install/
https://ex1.m-yabe.com/archives/5915