EC CUBE 4.3.0のインストール構築メモ on Ubuntu 22.04

## :high_brightness: EC CUBEとは?

EC CUBEとは、国産のとても人気のある、ショッピングカート(ECサイト)構築のためのオープンソースソフトウェアです。
独自サーバに自分だけのショッピングカートを一から構築したい方にお勧めのソフトウェアです。

今回私は、仕事でショッピングカートを構築する要件があったので、ここにその構築手順を備忘を兼ねて記録したいと思います。

なお、本記事は2024年9月に執筆しています。
今後、バージョンアップやパッチ修正などにより記載内容が適合しなくなる場合もありますのでご了承お願いします。

EC CUBEについての詳細はこちらの本サイトからご参照ください。

https://www.ec-cube.net/

## :high_brightness: EC CUBEのバージョン

今回使用するEC CUBEのバージョンは以下です。
　**EC CUBE バージョン 4.3.0**

ソフトウェアの取得に際して、本家EC CUBEのWEBサイトでEC-CUBEメンバー登録が必要なので、予め登録しておきます。
ここでは、すでに登録が済んでいる前提で進めて参ります。

## :high_brightness: EC CUBEをダウンロード

ではさっそく以下の手順で進めて参りましょう。

#### 1. EC CUBEをダウンロードする

EC CUBEサイトにアクセスし、右上のメニュー「ダウンロード」をクリックします。

今回はUbuntuにインストールするので、ダウンロードファイルを指定します。
下図の「過去バージョンのダウンロード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/5e32278f-8f4b-7c02-14b9-22b3d4f5ddd1.png)

下図の「Version 4.3.0(tar.gz)」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/1e1fea15-2a9d-e6f5-f4a7-7faf5c1c6138.png)

メンバー認証画面が出ますので、メンバー登録した情報を入力し「ログイン」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/054261fa-4c6e-7441-b9c1-31a8174400e3.png)

ログイン完了後、自動的にファイル「eccube-4.3.0.tar.gz」がダウンロードされます。


## :high_brightness: Ubuntuサーバにインストールする

今回はUbuntu 22.04にインストールします。
サーバは別途ご用意ください。

#### 1. Apache 2系をインストール

以下の手順でApache 2系をインストールします。
`Apache 2.4.x (mod_rewrite / mod_ssl 必須)`
※以下一文ずつ実行する

```block
sudo apt -y update
sudo cp /etc/localtime /etc/localtime.org
sudo ln -sf  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
sudo apt -y install apache2
sudo a2enmod rewrite
sudo a2enmod ssl
sudo service apache2 restart
```

#### 2. Maria DBをインストール

DB(データベース)としてMaria DBをインストールします。
バージョンを11.5に指定しています。
`Maria DB version 11.5`
※以下一文ずつ実行する

```block
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-11.5"
sudo apt-get -y install mariadb-server mariadb-client mariadb-backup
sudo systemctl restart mariadb.service
sudo systemctl status mariadb.service
sudo mysql_secure_installation
```

下図の通り、rootユーザに設定するパスワードを問われるので、パスワードを入力する。
パスワードは容易に推測しにくいパスワードとしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/e1da4c1e-bd50-f112-176e-7ee87ba6ff0b.png)

以下連続して"Y"を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/d7e67f77-8a23-5446-464b-a30201a95b8c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/33cb689a-5b07-481b-aa2f-6f3d1c24d1ae.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/f099457e-dbe9-f465-3f61-1d6d1a42aaf7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/e25f61b5-7e0a-ac34-f08f-5685d959a79d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/e64b662d-899d-6c67-d38d-aea4018f11f3.png)



#### 3. データベースを作成する

EC CUBEで使用するデータベースを作成します。
　・データベース名：eccube
さらに、ここではデータベースユーザの例としてmasterを設定します。
　・ユーザ名：master
　・パスワード：dbpass1
masterユーザに対してすべての権限を付与しています。
**※権限付与は実際の運用を考慮し、必要最小限の権限を付与するよう設計してください。**

```block
sudo mariadb
```

DBにログインして、下図のようにプロンプトがDBのプロンプト変わります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/7b8b435d-a4a1-b45e-1186-cfe8e5472dbd.png)

以下を実行してデータベースを作成します。

```block
CREATE DATABASE eccube;
GRANT ALL PRIVILEGES ON eccube.* TO master@localhost IDENTIFIED BY 'dbpass1';
GRANT ALL PRIVILEGES ON eccube.* TO master@"%" IDENTIFIED BY 'dbpass1';
FLUSH PRIVILEGES;
```

実行後、quitで終了してください。

#### 4. PHPのインストール

以下の手順でPHPをインストールします。
以下がPHPのバージョンです。
`PHP 8.1`

```block
sudo add-apt-repository ppa:ondrej/php
sudo apt -y update
sudo apt -y upgrade
```

途中で以下のような画面が出たら、単純にOKとして先に進めてください。
以下同様にこの画面が出たら、そのように進めてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/c509ff4b-d5d9-ef43-4365-c0d7932fe340.png)

```block
sudo apt -y install php8.1
sudo apt-get -y install php8.1-xml
sudo apt-get -y install php8.1-bz2
sudo apt -y install php8.1-ldap
sudo apt -y install php8.1-curl
sudo apt -y install php8.1-mbstring
sudo apt-get -y install php8.1-mysqli
sudo apt-get -y install php8.1-intl
sudo apt -y install php8.1-zip
sudo service apache2 restart
```

Apacheの設定ファイル(confファイル)にDirectoryIndexとしてindex.php以下を追加します。
`DirectoryIndex index.php index.html`
修正対象ファイルは以下です。
`/etc/apache2/sites-available/000-default.conf`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/2a662d37-cd25-d5a3-e0da-01869837cfe1.png)

ここでは修正方法は省略します。
修正後、以下を実行します。
`sudo service apache2 restart`

#### 5. EC CUBEのインストール

いよいよEC CUBEをインストールします。

```block
sudo chmod 777 /var/www/html
```

まず上記コマンドを実行した後、サーバの/var/www/html配下に冒頭でダウンロードした「eccube-4.3.0.tar.gz」をアップロードします。

以下のコマンドで解凍、ショッピングカートのパス名を"myshop"に変更します。

```block
cd /var/www/html
tar -xvf eccube-4.3.0.tar.gz
mv ec-cube myshop
```

必要な権限を付与します。

```block
sudo chmod 777 ./myshop
cd myshop
sudo chmod 777 -R app
sudo chmod 777 -R html
sudo chmod 777 -R var
sudo chmod 777 -R vendor
sudo chmod 777 composer.json
sudo chmod 777 composer.lock
sudo service apache2 restart
```

以上で設定は完了です。
引き続き、EC CUBE画面上で初期設定があるので、以下のURLにアクセスして初期設定を行ってください。

**初期設定URL**
http://[ドメイン]/myshop/index.php/install/step1

なお、今回はSSL証明書のインストールを行っていませんので、httpsは使えません。
セキュリティを考慮してSSL証明書のインストールも追加で行ってください。