前提
この記事では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で上記の手順 01〜04までのセットアップを実施しておいてください。その後、以下のコマンドでソースコードを取得します。
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
これでAWS上でEC-CUBEを動かすことができる。以下のコマンドでサーバを起動。
bin/console server:start 0.0.0.0:8000
http://[EC2のIPアドレス]:8000/admin
にブラウザでアクセスしてみましょう。
いつものページが表示されました!!!
以上、EC-CUBE4の立ち上げ〜AWSにデプロイするまでの手順を紹介しました。
良い記事だと思っていただいた方は、以下の「★+」ボタンのクリック、SNSでのシェア、「読者になる」ボタンのクリック、Twitterのフォローをお願いします!