AWS EC2にECサイトを構築する ~EC-CUBE編~

初めに

こんにちは。新入社員のA.H.です。
今回はAWS EC2インスタンスに日本国内シェア率トップのECサイト構築パッケージであるEC-CUBEの最新バージョン4.0.5の構築を行っていきます。

バージョンが古い場合や新しい場合は構築手順やシステム要件が異なる場合がありますので、1度再確認してから本記事を参考にしていただけますと幸いです。

目標

・EC-CUBE4の管理画面にログインでき、正常に動作する状態
・EC-CUBE4のフロントページが確認でき、正常に動作する状態

※EC2インスタンス作成手順は割愛いたします。

目次

  1. 構築環境
  2. 下準備
  3. 構築
    1. Apache2.4のインストール
    2. MySQL5.7のインストール
    3. PHP7.4のインストール
    4. Composerのインストール
    5. 環境設定
    6. EC-CUBE4のインストール
    7. EC-CUBE管理画面へのログイン

構築環境

インスタンス構成

タイププロトコルポート範囲
SSHTCP22
HTTPTCP80

システムバージョン

EC-CUBE4のシステム要件
https://doc4.ec-cube.net/quickstart_requirement

今回の構築環境の各システムバージョン

使用ツール

  • Tera Term
  • Win SCP

下準備

1.EC-CUBEパッケージデータのダウンロード

EC-CUBEのダウンロードページから最新のパッケージをダウンロードしてください。ファイル名はそのままで構いません。
https://www.ec-cube.net/download/
※会員登録が必要です。

2.インスタンスへのログイン

TeraTermを用いてインスタンスへログインします。

TeraTermを起動すると以下のような画面が出てくるため、赤枠で囲われている ホスト に作成したインスタンスの パブリック IPv4 アドレス を入力してOKを押します。

以下のような画面が出る事もありますが、続行を押してしまって構いません。

以下の画面が表示されたら
①ユーザー名に ec2-user と入力。
②認証法式はの赤枠内の RSA/DSA/ECDSA/ED25519鍵を使う を選択。
最後に③の赤枠内を選択しインスタンスを作成した際に設定した pemファイルの秘密鍵 を指定します。

OKを押し、以下の画像と同じような画面が出てきましたらインスタンスへの接続は成功です。

次はインスタンス内の環境を整えてEC-CUBEをインストール準備をしていきます。

 

構築

1.rootユーザーへの切り替え

1.1 rootユーザーに切り替える

ログイン時は制限つきのec2-userのため、全権限を持つrootに切り替えます。

sudo su -

合わせてインスタンス内を最新の状態にします。




 

2.Apacheのインストール

2.1 Apacheをインストールする

sudo yum install httpd

2.2 Apache自動起動設定

systemctl enable httpd.service

 

3.MySQLのインストール

3.1 MySQLをインストールする

rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum install mysql-community-server -y

3.2 MySQLの起動

systemctl start mysqld.service

3.3 MySQL自動起動設定

systemctl enable mysqld.service

3.4 MySQLへログインする

MySQLへログインしDBを作成する必要がありますが、ログインには初期設定のパスワードが必要なため以下コマンドを入力し確認します。

cat /var/log/mysqld.log | grep 'temporary password'

以下内容のような文が返ってきます。

2020-09-17T07:14:01.628396Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: GG1Z?i9QWtxG

文末の root@localhost:  以降の文字がパスワードです。
※上記の場合は GG1Z?i9QWtxG がパスワードとなります。

パスワードが入手できたのでMySQLにログインします。

mysql -u root -p

パスワードを求められるので先ほど入手したパスワードを入力してエンターキーを押してください。
※パスワードは入力しても画面には反映されません。

3.5 パスワードを変更する

ログイン後は初期パスワードを変更しないとMySQL内の操作ができないため、以下コマンドでパスワードを変更します。

set password="新しいパスワード";

※パスワードの内容が甘いと

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

とエラーが表示されます。
アルファベット大文字・小文字・数字・記号を組み合わせて設定してみてください。

3.6 DBを作成する

EC-CUBE用のDBを作成します。

CREATE DATABASE eccube character set utf8;

今回は
データベース名 eccube
文字コード utf8
で設定しました。

次にMySQLのユーザーを新たに作成し、先ほど作成したcube4の管理者に割り当てます。

GRANT ALL PRIVILEGES ON eccube.* TO eccube@localhost identified by 'Password**11';

上記コードでは
管理下に置くDB名 eccube
管理者ユーザー名 eccube
パスワード Password**11
の設定で作成されます。

設定が終わったら exit + Enterキー でMySQLから抜けます。

 

4.PHPのインストール

4.0 システム要件を確認する

現在必要とされているPHPの必須ライブラリを把握します。
https://doc4.ec-cube.net/quickstart_requirement

4.1 remiレポジトリを使用可能にする

sudo amazon-linux-extras install epel
sudo yum install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

4.2 PHPをインストールする

sudo yum install php74 php74-php

4.3 phpコマンドを使用可能にする

sudo ln -s /usr/bin/php74 /usr/bin/php

4.4 現在のライブラリを確認する

php -m

表示されたライブラリ内にEC-CUBEの必須ライブラリとされていたものがあるか確認し、不足分を把握しておきましょう。

4.5 追加可能なライブラリを確認する

yum list | grep php74</pre>

上記コマンドで追加可能なライブラリが全て表示されます。先ほど確認できなかったライブラリが見つかるはずです。

4.6 不足していたライブラリをインストールする

不足していたライブラリを下記コマンドでインストールします。

sudo yum -y install php74-php-pgsql php74-php-pdo php74-php-mysqlnd php74-php-mbstring php74-php-xml php74-php-pecl-zip php74-php-intl

※環境によっては上記コマンドの内容のみでは必須ライブラリの条件を満たさない可能性があります。php -m で全て揃ったことを確認してから次に進んでください。

 

5.Composerのインストール

5.1 Composerをインストールする

以下のComposerのサイトにアクセスし、Command-line installation の下にある4行のコマンドを実行します。
https://getcomposer.org/download/

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

5.2 composerコマンドを使用可能にする

mkdir ~/bin
mv composer.phar ~/bin/composer

上記の実行が終わった後に

composer

と実行し、以下のようなアスキーアートが表示されれば設定は完了です。

  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ / __ `__ / __ / __ / ___/ _ / ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
____/____/_/ /_/ /_/ .___/____/____/___/_/
                    /_/
Composer version 1.10.10 2020-08-03 11:35:19

 

6.EC-CUBEファイルのアップロード

6.1 WinSCPを使ってアップロードする

WinSCPを起動し、前準備でダウンロードしたEC-CUBEのパッケージを /home/ec2-user 内に配置します。

WinSCPを起動すると以下画像のウィンドウが立ち上がります。
①新しいサイト を選択
②ホスト名 にインスタンスの パブリック IPv4 アドレス を入力
③ユーザー名 に ec2-user を入力
④設定 をクリックします。

別のウィンドウが立ち上がるため、
SSH 認証 をクリックします。
以下の画面と同じ表示となりますので、
②のボタンを押し、秘密鍵を選択します。

WinSCPpkkファイルのみをサポートしているため、pemファイルの鍵は表示されないよう絞込表示がされています。
絞込を解除し、pemファイルを設定すると以下の画面が出ますのでOKを押してpkkファイルを生成、保存してください。

pkkファイルが選択されている状態を確認出来たらOKを押し、最初のウィンドウに戻ります。
ログインを押し、左画面に自分の端末のファイル、右にインスタンスの /home/ec2-user/ 内のファイルが表示されていれば接続成功です。
TeraTermインスタンスにログインしたときのような警告が出ることがありますが同じように はい を押して構いません)

ドラッグ&ドロップ、もしくはWinSCPのアップロードを使って前準備の1でダウンロードしたEC-CUBEファイルを /home/ec2-user/ アップロードしてください。(回線によっては時間がかかります)

6.2 EC-CUBEファイルの解凍

EC-CUBEファイルのアップロードが終了したらTeraTermに戻り、以下コマンドでファイルを解凍します。

cd /home/ec2-user
unzip eccube-4.0.5.zip

解凍が終わった後、解凍元のzipファイルは不要なため削除します

rm eccube-4.0.5.zip

 

6.3 EC-CUBEファイルの移動

cd /home/ec2-user
mv eccube-4.0.5 /var/www/

以下コマンドでファイル名を変更します

mv eccube-4.0.5 ec-cube

 

7.環境設定

7.1 Apacheの設定ファイルを編集する

設定ファイルを編集する前にバックアップを取っておきます。

cp /etc/httpd/conf/httpd.conf /home/ec2-user

以下コマンドで設定ファイルを編集します。

vim /etc/httpd/conf/httpd.conf

編集は i + Enterキー
編集終了は Esc
行数表示は :set number + Enterキー
文字検索は /検索したい文字 + Enterキー
編集内容を保存して終了は :wq! + Enterキー です。

119行目付近

/* 変更前 */
DocumentRoot "/var/www/html"

/* 変更後 */
DocumentRoot "/var/www/ec-cube"

131行目

/* 変更前 */
&lt;Directory "/var/www/html">

/* 変更後 */
&lt;Directory "/var/www/ec-cube">

151行目

/* 変更前 */
AllowOverride None

/* 変更後 */
AllowOverride All

以上で編集は終了です。
Apacheのファイルを編集したので再起動しておきます。

systemctl restart httpd.service

 

8.EC-CUBEのインストール

8.1 Webブラウザ上でEC-CUBEのインストールを行う

Webブラウザ上でEC-CUBEのインストールを行います。
インスタンスの パブリック IPv4 DNS にWebブラウザで接続すると以下の画面が表示されます。

青いバー上に

[推奨] apc拡張モジュールが有効になっていません。

と表示がありますが、今回インストールを行った「PHP 7.4.11」では指定のモジュールは使用できません。
代わりに使用可能な「Opcache」と「APCu」をインストールします。

sudo yum -y install php74-php-opcache php74-php-pecl-apcu

インストールが完了したらApacheを再起動します。

systemctl restart httpd.service

もう一度 パブリック IPv4 DNS に接続してください。
※青いバーは消えませんが、無視で構いません。 画面が表示されたら「次へ進む」をクリックします。

エラーがない場合は「次へ進む」をクリックします。

画面の内容に従って入力してください。
※今回はメールサーバーの設定はしていないため、適当なメールアドレスを入力し、下部にある「メールの設定」はデフォルトで構いません。
内容は適宜メモをとっておきましょう。

今回は

店名XPショップ
メールアドレスxp-shop@example.com
管理者ログインIDadmin
管理画面のディレクトリ名login

で設定を行いました。
入力が完了したら「次へ進む」をクリックしてください。

データベースの種類MySQL
データベースのホスト名localhost
データベース名eccube
ユーザー名eccube
パスワードユーザー名に対応したパスワード

手順通りの入力で進めた場合は上記内容を入力してください。データベースのポート番号は空欄でも問題ありません。
※データベース名、ユーザー名を独自に設定した方は設定した値を入力してください。

入力が終わったら「次へ進む」をクリックしてください。

データベースを初期化します。
新しく構築しているため、チェックは入れず「次へ進む」をクリックしてください。

少し待ったのち、上記と同じ表示がでましたら構築は完了です。
「管理画面を表示」をクリックし、管理画面へ移動しましょう。

 

9.EC-CUBE管理画面へのログイン

9.1 EC-CUBEの管理画面にアクセスする

インストールが完了後、「管理画面を表示」をクリックすると以下の画面が表示されます。
※インストールの際に設定した「管理画面のディレクトリ名」を パブリック IPv4 DNS の末尾につけ、アクセスしても同じ画面が表示されます。
インストールの際に設定した 管理者ログインID と 管理画面パスワード を入力してください。

管理画面にログインできたら成功です。

なお、ショップは パブリック IPv4 DNS にWebブラウザでアクセスすると確認することができます。

これでEC-CUBEの構築は終了です。お疲れ様でした。

最後に

今回はAWS EC2にEC-CUBEを構築してみました。
次回はMagentoの構築について共有させていただけたらと思います。

最後までお付き合いいただき、ありがとうございました!





AWS相談会バナー