AWSのEC2にEC-CUBEをインストールする

# はじめに

コロナウィルスの影響により、イベント開催が難しくなっているのでECを活用したいという話を聞く機会が増えた。
営業支援をともに行っているAくんは非エンジニアだが、自己学習のためAWSを触ってみたりしているので、
彼が自分でEC-CUBEを設定できるよう最速で簡単にセットアップするための手順を用意してみた。

# TL;DR

* 2020-08-24 記事作成
* Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-0cc75a8978fbbc969 使用
* EC-CUBE 4.0.4 使用

```
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2
yum install -y mariadb-server
yum install -y httpd php php-xml php-mbstring php-zip php-intl
cd /usr/local/src/
wget http://downloads.ec-cube.net/src/eccube-4.0.4.zip
unzip eccube-4.0.4.zip
mv eccube-4.0.4 /var/www/html/ec
chown -R apache:apache /var/www/html/
echo -e '<Directory "/var/www/html/ec">\n  AllowOverride All\n</Directory>' > /etc/httpd/conf.d/ec.conf
systemctl start mariadb
mysql -u root -e "CREATE DATABASE ecdb DEFAULT CHARACTER SET utf8;CREATE USER 'ecuser'@'localhost' IDENTIFIED BY 'ecpass';GRANT ALL PRIVILEGES ON ecdb.* TO 'ecuser'@'localhost';FLUSH PRIVILEGES;"
systemctl start httpd
```

# 上の補足説明

### yumのupdate

```
yum update -y
```

### LAMP環境の用意

```
amazon-linux-extras install -y lamp-mariadb10.2-php7.2
yum install -y mariadb-server
yum install -y httpd php php-xml php-mbstring php-zip php-intl
```

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html
ここに詳しく書いていますが、amazon-linux-extrasコマンドでパッケージを最新化し
yumコマンドで必要パッケージをインストールするという流れです。

php-xmlなどは入れておかないとEC-CUBEのインストールステップの中で怒られます。

### EC-CUBEファイル群の設置

```
cd /usr/local/src/
wget http://downloads.ec-cube.net/src/eccube-4.0.4.zip
unzip eccube-4.0.4.zip
mv eccube-4.0.4 /var/www/html/ec
chown -R apache:apache /var/www/html/
```

wgetでzipをダウンロードし、解答したら
/var/www/html/ec
に設置、apacheユーザ権限を付与してやる。

### Apacheの設定

```
echo -e '<Directory "/var/www/html/ec">\n  AllowOverride All\n</Directory>' > /etc/httpd/conf.d/ec.conf
```

専用confを設定せずそのままインストールを進めると、リダイレクトでエラーになります。
これはEC-CUBEが.htaccessを利用してrewrite処理をしようとするけど
/var/www/html 以下はAllowOverride Noneなのでその配下の.htaccessが効かないためです。
/var/www/html/ec 以下はAllowOverride Allという設定を入れておきます。

### MariaDBの設定

```
systemctl start mariadb
mysql -u root -e "CREATE DATABASE ecdb DEFAULT CHARACTER SET utf8;CREATE USER 'ecuser'@'localhost' IDENTIFIED BY 'ecpass';GRANT ALL PRIVILEGES ON ecdb.* TO 'ecuser'@'localhost';FLUSH PRIVILEGES;"
```

mariadbを起動して、データベースの作成とユーザの設定を実行します。
SQLの内容を1行ずつ切り分けるとこんな感じ。

```
// データベースを作成する。データベース名は「ecdb」としておく。
CREATE DATABASE ecdb DEFAULT CHARACTER SET utf8;
// ユーザの作成。ユーザ名「ecuser」、パスワード「ecpass」としておく。
CREATE USER 'ecuser'@'localhost' IDENTIFIED BY 'ecpass';
// 権限変更。全て許可する。
GRANT ALL PRIVILEGES ON ecdb.* TO 'ecuser'@'localhost';
// 権限テーブルを変更したのでそれを知らせる
FLUSH PRIVILEGES;
```

データベース名やユーザ名、パスワード等は適宜変更してください。

### Apacheの起動

```
systemctl start httpd
```

最後にApacheを起動。

以上でサーバ側のセットアップは完了。

# WEB側のセットアップ

サーバ側のセットアップが終わったら、今度はWEB側のセットアップを行う。

### セットアップ STEP1

![01_step1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158995/8b249814-aa4a-cff5-95fe-80251ade7e32.png)

/ec にアクセスすると、install/step1 にリダイレクトされます。
.htaccessが無効な場合はここで403になるし、必要なモジュールが入ってないとここで怒られます。

### セットアップ STEP2

![02_step2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158995/d59e0b4c-55eb-7a99-35fc-f378bbb5883b.png)

アクセス権限を確認されます。

### セットアップ STEP3

![03_step3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158995/d1a89a2c-24b7-b788-db68-ecb95505e3da.png)

必要に応じてサイトの設定を行います。
管理画面のディレクトリ名は推測されづらいものを入れた方が良いし、
完全ssl化や管理画面へのIP制限は行っていた方が安全です。

### セットアップ STEP4

![04_step4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158995/d40e10f9-a334-a1ca-281c-f4ceabafb723.png)

DBの設定です。
サーバ側設定で利用したものを入力します。
また、必須事項になっていませんがホスト名は必須(localhostだからスキップでいいだろ、としていたらエラーになりました。)のようです。

### セットアップ STEP5

![05_step5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158995/fa51daaf-161a-fdec-60dd-9bc03ea3b726.png)

初期化を行います。

### セットアップ STEP6

![06_step6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158995/48c49150-e9d5-460c-eebb-61915ecde33c.png)

問題なければインストール完了の画面が表示されます。
「管理画面を表示」を押下します。

### 管理画面へのログイン

![07_admin_login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158995/9ff7e668-e4c6-5979-d584-cd5f921a8f98.png)

STEP3で設定したログイン情報を使ってログインします。
成功すれば管理画面内にアクセスできます。

![08_admin_home.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158995/b79cd3c4-7d37-624e-39fa-df16e86b3e26.png)

以上！