ビギナーでもわかるEC-CUBE3 on AWS(インストール編)

eccube on
 こんにちは、新卒の田斉です。 今回の記事の題材はEC-CUBEオープンソースのショッピングカートシステム(国産)で、現在180万ダウンロードを突破、推定30000店舗で稼働中の人気パッケージです。

そんなEC-CUBEが弊社ブログで取り上げられたのは、2012年。早4年もの年月が経ち、その間EC-CUBEは2系から3系へとメジャーアップグレードを遂げました。

2012年の記事執筆時点で、AWS上でのEC-CUBE2.0の構築手順に関する情報はあまりなかったようですが、そんな状況はEC-CUBE3.0になっても相変わらず。なので、「私と同じようなAWSを勉強中の身にもわかりやすい内容で、EC-CUBE3.0版のアップデート記事を書きたいなぁ」と思ったのが今回の執筆動機になります。

今回の記事では以下のような「ここまで実装できれば、実際にお店を公開できそう」という基本的な実装内容を全3回くらいで紹介します。

全体構成図
  • EC2へのEC-CUBE3.0.12インストール
  • 冗長性に配慮した構成をつくる(サーバー複数台間のデータ同期の工夫など)
  • DNS設定・SSL証明書導入をしてECサイトを公開する
本稿ではシングル構成でEC-CUBEを稼働できた!というところまでを扱います。※

※EC2・RDSのインスタンス起動手順およびIAMロールの作成手順は今回詳述しないので、別記事でご確認ください。
%e3%83%95%e3%82%99%e3%83%ad%e3%82%af%e3%82%99%ef%bc%91

1. IAMロールの作成

後述のRDSのパラメータグループ変更がCLIで行えると手早く済むので EC2用のIAMロールを作成しておきます。作業用に”rds:ModifyDBParameterGroup”に相当する権限をつけておいてください。

2. EC2インスタンスの起動

今回は『Amazon Linux AMI 2016.09.0 (HVM), SSD Volume Type - ami-0c11b26d』を利用して、EC2インスタンスを起動します。このとき、先ほど作ったIAMロールを割り当てておくことをお忘れなく。以後は起動したEC2にssh接続した後の処理を記載します。

3. タイムゾーンの設定

OSのタイムゾーンを日本時間に直します。 ↑で即時反映されますが、この設定だけだと、glibcの変更時(アップデート時など)に協定世界時間(UTC)にタイムゾーンが戻る恐れがあるので、もう一箇所変更を加えます。 【編集前】 【編集後】

4. 必要なミドルウェアのインストール

ECCUBE-3を稼働させるためのミドルウェアをインストールします。 必要なミドルウェア一覧はこちらです。

PHPのバージョンは5.3.9以降が推奨されています。今回はphp5.6を使用します。下記内容で必要なミドルウェアを全て網羅できるはずです。 なお、インストールするPHPは別バージョンでも構いませんが、その場合は依存関係のあるパッケージがphp5.6と異なる可能性があります。その場合インストール対象として明記すべきパッケージに違いが生じる(=↑のコマンドをそのまま使いまわせない)ことに注意してください。※

※特にphp-xmlは要注意です。EC-CUBE 3.0はインストールの初期設定画面で不足パッケージがあると警告してくれますが、php-xml(に含まれるDOMDocumentクラス)がないとその警告内容が表示されない仕様になっています。特に今回のAMIの初期状態で とすると、PHP5.3.29が落ちてきますが、php56と異なりphp-xmlは依存性関連で自動インストールされません。

5. PHPの設定

Linuxのタイムゾーンだけではなく、PHPのタイムゾーンも日本時間に合わせます。
【編集前】 【編集後】

6. RDSの設定

RDSでDBインスタンスを作成してください。 ここまでの手順でOSとPHPと2つのタイムゾーンを編集してきました。RDSのタイムゾーンもこれに合わせて変更しておきたいところです。

EC-CUBE2.0版記事の執筆時点では、RDSで日本時間の設定がサポートされておらず、ちょっとした細工(「11.RDS:MySQLのタイムゾーンについて」という章の作業がそれにあたります)が必要でした。

が、今日 RDS(MySQL)では、日本時間でタイムゾーンを設定できるようになっています。こうやって過去記事のアップデート記事を書いているとAWSの着実な進歩が確認できていいものですね。

さて、具体的な手順としては
ACLコマンドの使用時等に、いちいちリージョン名をオプションで記載しなくても済むようにaws configureコマンドでregionを東京にセットしたあとに 以下コマンドのコピペで、作成済みRDSのパラメーターグループの変更(タイムゾーン設定 & 日本語の文字コード設定)を済ませましょう※。

※{}内は、作成済みRDSに用いているパラメーターグループ名を入力してください。
※CLIに慣れていない方は、コンソール上で該当するパラメーター変更を行っていただいても構いません。

7. EC-CUBE用のデータベースの作成

EC-CUBEで用いるデータベースを作成します。RDS起動時に作成したデータベースをそのまま利用するのであれば、-e以下は不要です。EC2とRDSが接続可能かだけは念のため確かめてください。

8. EC-CUBEの設置

ECCUBE3のパッケージをダウンロード→解凍→わかりやすいディレクトリ名に変更&わかりやすい置き場(/home/のすぐ下)にディレクトリをごそっと移動します。 その後、httpd.confに以下2つの変更を加えます。 I.ドキュメントルートに、先ほど名称・ディレクトリ変更を行った/home/eccubeを指定します。
【編集前】 【編集後】 II./home/eccube以下のディレクトリのhtaccessを有効にして、ユーザ(管理者)認証などを可能な状態にしておきます。※

※これをやっておかないとインストール設定が完了したと思いきや、400番台エラー(管理者画面が表示できない)が出て悲しい気持ちになります。

【編集前】 【編集後】 その後、httpdを起動して、EC2にHTTPアクセス(して、そのあとGUIでEC-CUBEのインストール設定)ができるようにします。

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

http://{EC2のPublic DNS名またはグローバルIP}/install/ にアクセスし、インストール画面を表示します。
以下、画面キャプチャを記載します。
step1 step2
ECCUBE初期設定1 ECCUBE初期設定2
step3 step4
ECCUBE初期設定3 ECCUBE初期設定4
step5 step6
ECCUBE初期設定5 ECCUBE初期設定5.5
step7 step8 管理ページにログイン成功
ECCUBE初期設定6 ECCUBE初期設定7
【エラー編】
step1 正常な警告表示 step1 php-xmlを未インストール時
正常な警告 php-xmlがないとき
step10 htaccessを無効時
管理画面の表示失敗

10. 接続してみる

下記のURLに支障なくアクセスできるか確認しましょう。管理サイトに関しては、「9. EC-CUBEのインストール」のステップ3で設定したIDとパスワードでログインできるかまで確かめてください

  • 管理サイト
  • http://{EC2のPublic DNS名またはグローバルIP}/{「9. EC-CUBEのインストール」のステップ3の設定ディレクトリ}/
  • ECサイト
  • http://{EC2のPublic DNS名またはグローバルIP}/

    11. installディレクトリの削除

    /home/eccube/htmll/install.phpを残しっぱなしにしておくと管理画面で注意されます。放置しておくと、第三者に初期設定をおこなわれてしまう(現環境をリセットされる)恐れがあるので、忘れずに削除しましょう。 ただし、再設定をおこなう余地を残しておきたい場合は、読み取り権限をなくしておく(あるいは別ディレクトリに移動する)などの処置をとってもよいと思います。

    最後に

    以上で、EC-CUBE3のインストールは完了です。お疲れさまでした。 次回は『冗長構成を組んでみる』編を書きたいと思います。

    AWS運用自動化サービス「Cloud Automator」無料トライアルはこちらから

    CATEGORY :

    COMMENT ON FACEBOOK