ひろこま Hack Log

プログラミングや機械学習などの知識を記録・共有します

EC-CUBE4の立ち上げ〜AWSにデプロイするまで

f:id:twx:20200103202217p:plain
EC-CUBE 4.0.1

前提

この記事ではEC-CUBE4を立ち上げ、AWSのEC2にデプロイするまでの手順を紹介します。筆者の動作環境は以下の通りです。筆者はMacの上にVirtualBoxでUbuntuを立てて開発していますが、記事の内容自体はWindowsの方でも通じると思います。

  • ローカル開発環境

    • Mac上のVirtualbox
    • OS: Ubuntu18.04
  • 本番環境サーバ

    • AWS EC2 (t2.micro)
    • OS: Ubuntu18.04
  • EC-CUBE: 4.0.1

  • DB: MySQL
  • PHP: v7.2
  • Composer: 1.9.1

  • デプロイ方法: Githubにpush/pull

手順

01. パッケージ最新化

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt autoremove

02. 各種ツールのインストール

sudo apt-get install wget php-cli php-zip unzip

03. MySQLの設定

サーバとクライアント両方インストール

sudo apt install mysql-server mysql-client

まずはrootでMySQLにログインし一般ユーザを作成。ここでは hoge というユーザ名、 fuga というパスワードを使用する想定で話を進めます。

sudo mysql -u root
create user 'hoge'@'localhost' identified by 'fuga';

新規DB作成。ここでは piyo というデータベースを使用する想定で話を進めます。

create database piyo;

一般ユーザにDBレベルの権限を付与

grant all privileges on piyo.* to 'hoge'@'localhost';
flush privileges;

一旦MySQLの対話プロンプトから exit コマンドで出て、今作ったhogeユーザでログインできるかチェック

sudo mysql -u hoge -p

ログインユーザの権限を確認

show grants;

権限が付与されていることを確認できればOKです。

04. Apacheの設定

CentOSではhttpdというパッケージ名だがUbuntuではapache2なので注意。

sudo apt-get install apache2

PHP Composerのインストール

※ 参考: https://linuxize.com/post/how-to-install-and-use-composer-on-ubuntu-18-04/

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer --version

PHPモジュール類のインストール

sudo apt-get install php-common php-pdo php-gd php-mysql php-xml php-mbstring php-phar php-ctype php-json php-zip php-curl php-fileinfo php-intl libxml2-dev zlib1g php-opcache

以下のコマンドでインストール済みモジュールを確認できる

php -m

05. ECCUBEの設定

EC-CUBE4のインストール

composer create-project ec-cube/ec-cube ec "4.0.1"

※最後にSQLiteのエラーが出るが問題ないです。今回はSQLiteではなくMySQLを使います。

MySQLの設定を行う

cd ec
bin/console eccube:install

DB設定の対話画面で以下を入力

mysql://hoge:fuga@127.0.0.1/piyo

※ 残りはすべてデフォルトでOK

以上で、設定は全て完了です。サーバを起動してブラウザでアクセスしましょう。IPアドレスを指定してサーバを立ち上げます。

bin/console server:stop
bin/console server:start 192.168.56.99:8000

以下のURLにブラウザでアクセス

http://192.168.56.99:8000/admin/

EC-CUBEの管理者用画面が出ればOK! 初期IDとパスワードは admin と password です。

アクセス出来ない場合は、開発環境のファイアウォールが8000ポートを許可しているかどうか確認してみてください。Ubuntuの場合、ufw というコマンドでポートの開閉を制御できます。

06. AWSへのデプロイ

これまでローカル環境で作業していましたが、本番サービス化に向けてAWS上で動かしてみます。

流れとしては、ローカルからGithubにPushして、それを本番用サーバでPullするという流れになります。Githubのリポジトリ作成、AWSの操作等の方法に関する解説はここでは割愛させていただきます。

まずはローカルで作業します。適当なgitリポジトリを作り、以下のコマンドでpushしましょう。

git add .
git commit -m "first commit"
git push origin master

Gitリポジトリにソースコードがpushされたことを確認したら、AWSのEC2でこれをpullします。

事前に、AWSのEC2で上記の手順 0104までのセットアップを実施しておいてください。その後、以下のコマンドでソースコードを取得します。

git pull https://github.com/**** 

その後、EC-CUBEのディレクトリに入り、以下のコマンドでインストールを行います。

# vendorファイル等のモジュール類をインストール
composer install

# DB設定などを行う。入力する内容は「手順04」と同じ
bin/console eccube:install

「There are no registered paths for namespace "Twig"」というエラーメッセージが出るバグ(?) を修正するため、以下の記事に記載のとおり app/template/user_data を手動作成する。

mkdir app/template/user_data

www.mahirokazuko.com

これでAWS上でEC-CUBEを動かすことができる。以下のコマンドでサーバを起動。

bin/console server:start 0.0.0.0:8000

http://[EC2のIPアドレス]:8000/admin

にブラウザでアクセスしてみましょう。

f:id:twx:20200103235439p:plain
EC-CUBE管理者画面

いつものページが表示されました!!!

以上、EC-CUBE4の立ち上げ〜AWSにデプロイするまでの手順を紹介しました。

良い記事だと思っていただいた方は、以下の「★+」ボタンのクリック、SNSでのシェア、「読者になる」ボタンのクリック、Twitterのフォローをお願いします!

Koma Hirokazu 's Hacklog ―― Copyright © 2018 Koma Hirokazu