2015年7月11日土曜日

EC-CUBE3.0.1をAzure WebApps (旧websites)へインストール(もちろん無料枠)

SYSTEM_KDです。

EC-CUBEのバージョン3がリリースされて、すぐにインストール記事を書こうと思っていたのですが、気づいたらもうバージョン「3.0.1」がリリースされていました。

というのも、EC-CUBE3はリリースのマイルストーンがある程度決まっており、下記の様になっております。

 

EC-CUBE バージョン3 マイルストーン

Ver:3.0.1 ・・・ 2015/07/08(リリース済)

Ver:3.0.2 ・・・ 2015/07/29

Ver:3.0.3 ・・・ 2015/08/19

Ver:3.0.4 ・・・ 2015/10/21

※本家のサイトに「計画は予告なく変更になる場合があります」とあるので、確実のこの通りになるわけではないと思います。

 

Azure へのEC-CUBE3.0.1インストール

前置きはさておき、さっそくAzureのWebApps(旧Websites)にEC-CUBE3をインストールしてみたいと思います。

なぜ、Azureへインストールかと言いますと、CentOSなどのLinux環境へは色々な方がインストールを行い、記事へまとめられているので、まだ記事がない(少なそうな)Azureへのインストールにしてみました。

上記の通り、大した理由ではないのですが、実際やってみると、無料枠縛りでやろうとしたせいか、少し面倒でしたので、難易度は若干高めです。
(すんなり終わる場合もあります)

 

用意するもの

1.Azure WebAppsの環境(無料枠でOKです)

2.ClearDB(無料枠でOK)

3.EC-CUBE3.0.1 のソースファイル(公式からゲットして下さい)

4.EC-CUBE3が動作するLinux環境(当記事ではVirtualBoxへ入れたCentOSを利用)
※MySqlのクライアント、gitが必要。

用意するものに「4.」がある時点で難航した感が出ておりますが、とりあえず先に進みます ^^;

 

1.Linux環境へインストール

まず、用意するもの「4.」の環境へEC-CUBE3.0.1をインストールします。

権限関係に気をつければ、特に問題なく、Webページからインストールが完了するかと思います。

EC-CUBE3のインストール方法ですが、WebページからGUIでインストールする方法以外に、シェルを実行してインストールを行う方法があります。

 

2.AzureへEC-CUBE3のソースをアップする

FTP経由で、Azureへファイルをアップします。

今回は以下のディレクトリへアップを行いました。
「site/wwwroot/eccube3_0_1」

※wwwrootの下へディレクトリを追加していますので、Azure側は構成の設定の「仮想アプリケーションとディレクトの設定にて、「サイトルートを基準とした物理パス」を「site/wwwroot/eccube3_0_1/html」に変更しています。

azure_setting

 

3.Webページからインストールを行う

1.インストール開始

install_1

 

2.権限チェック

install_2

 

3.サイト設定

install_3

 

4.データーベースの設定
ClearDBの接続設定を入力します。

install_4

 

5.データーベースの初期化
※デフォルト設定のままでOK

install_5

 

6.完了 or エラー発生

特にエラーが発生することなく、完了した方、おめでとうございます!
以上で、終了です。(Linux環境使いませんでしたね^^;

 

エラーが発生した方↓↓続きになります↓↓

 

7.インストールでエラーが発生した場合

インストールでエラーが発生した場合、おそらくエラー内容は、

User 'XXXXXXXXXXXX' has exceeded the 'max_user_connections' resource (current value: 4)

になっているのではないでしょうか?

ClearDBの無料枠では最大コネクション数が「4」になっているのですが、この値を超えたことによるエラーになります。

おそらく、ClearDBの対象DBへのコネクションが無い状態で、再度実行すれば良いとは思うのですが、別の方法で突破したいと思います。

簡単に思いつく手としては、PHPでコネクション数を制御してやるか、別の方法でインストールを行うか・・。

幸い、EC-CUBE3では、Webサイトからのインストール以外にシェルを実行してインストールする方法がありますので、今回は後者で対応しようと思います。

 

8.シェルからインストール

シェルからインストールを行うには、EC-CUBEのソースファイル直下にある、「eccube_install.sh」を実行してやります。

ようやく、用意するもの「4.」で用意したLinux環境の出番です。
(シェルが実行できて、MySQLのクライアントとgitが入っている環境ならなんでもOKではあります)

対応方法としては、以下の手順となります。

1.インストール用シェルの変更

2.vendorの削除

3.シェルの実行

4.Webページよりインストール実行

5.設定ファイルの修正

6.インストール完了

 

9.Azureへのインストール(再挑戦)
【1.インストール用シェルの変更】

では、早速インストール用のシェルを変更していきたいと思います。

変更を行うファイルは、直下にある「eccube_install.sh」です
Azure環境へアップしているソースではなく、Linux環境のファイル変更になります。

変更を行う場所は以下になります。

[66行目~69行目]
export DBSERVER=${DBSERVER-"127.0.0.1"}
export DBNAME=${DBNAME:-"cube3_dev"}
export DBUSER=${DBUSER:-"cube3_dev_user"}
export DBPASS=${DBPASS:-"password"}

この部分がDBの接続情報の設定部分になりますので、ClearDBの接続情報を設定します。

続いて、以下を変更します。

 

[212行目~219行目 変更前]
echo "dropdb..."
    ${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "drop database \`${DBNAME}\`"

    echo "createdb..."
    ${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "create database \`${DBNAME}\` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"

    #echo "grant user..."
    ${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "GRANT ALL ON \`${DBNAME}\`.* TO '${DBUSER}'@'%' IDENTIFIED BY '${DBPASS}'"

不要ですのでコメント化してしまいます。

[212行目~219行目 変更後]
#echo "dropdb..."
#${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "drop database \`${DBNAME}\`"

#echo "createdb..."
#${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "create database \`${DBNAME}\` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"

#echo "grant user..."
#${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "GRANT ALL ON \`${DBNAME}\`.* TO '${DBUSER}'@'%' IDENTIFIED BY '${DBPASS}'"

 

最後に、225行目、228行目を次の様に変更します。

[225行目 変更前]
${MYSQL} -u ${DBUSER} ${PASSOPT} --default-character-set=utf8  ${DBNAME} < ${SQL_DIR}/insert_data_mysql.sql

[225行目 変更後]
${MYSQL} -u ${DBUSER} ${PASSOPT} -h ${DBSERVER} --default-character-set=utf8  ${DBNAME} < ${SQL_DIR}/insert_data_mysql.sql

 

[228行目 変更前]
get_optional_sql | ${MYSQL} -u ${DBUSER} ${PASSOPT} ${DBNAME}

[228行目 変更後]
get_optional_sql | ${MYSQL} -u ${DBUSER} -h ${DBSERVER} ${PASSOPT} ${DBNAME}

赤字の部分を追記します。
どちらも「-h ${DBSERVER}」の追加になります。


これでシェルの変更はOKです。

Linux環境へ変更をアップしましょう。

 

9.Azureへのインストール(再挑戦)
【2.vendorの削除】

次に、以下のディレクトリを削除します。
Azure環境へアップしているソースではなく、Linux環境のディレクトリ削除になります。

インストール用のシェルと同じ階層(EC-CUBE3のソース直下)にある、
vendor」ディレクトリを削除。

 

9.Azureへのインストール(再挑戦)
【3.シェル実行】

Linux環境にて、変更したシェルを実行します。

sh eccube_install.sh mysql

で実行します。

実行後、MySqlへ接続できるツールで、ClearDBの環境へ接続を行い「テーブルの作成」と「データの追加」が行われていれば成功です。

 

9.Azureへのインストール(再挑戦)
【4.Webページよりインストール実行】

最初にWebページからインストールを行った手順通り再度インストール処理を進めていきます。

1.インストール開始

 ↓

2.権限チェック

 ↓

3.サイト設定

 ↓

4.データーベースの設定
ClearDBの接続設定を入力します。

 ↓

5.データーベースの初期化
※データベースの初期化を行わないにチェックを入れます。

 ↓

6.完了

 

9.Azureへのインストール(再挑戦)
【5.設定ファイルの修正】

インストールが完了したら、管理画面へのログインを試す前に、設定ファイルの修正を行います。

変更を行う設定ファイルは、次になります。
Azure環境のファイルの変更になります。

「site/wwwroot/eccube3_0_1/app/config/eccube/config.yml」
※パスは環境によって読み替えて下さい

ローカルへダウンロードするなりして、「auth_magic:」部分を以下へ書き換えます。

auth_magic: droucliuijeanamiundpnoufrouphudrastiokec
※上記の文字列は、eccube_install.shファイルの64行目の設定値です。

 

変更が完了したら、Azureへアップを行い変更を反映させます。

 

9.Azureへのインストール(再挑戦)
【6.インストール完了】

以上でインストール完了です。

管理画面へアクセスし、ログインIDへ「admin」、パスワードへ「password」を設定すれば、ログインできると思います。

管理者のIDとパスワードは、「システム設定>メンバー管理」から変更可能です。

top

system_setting

 

10.まとめ

インストール手順を要約すると、Azure環境からテーブルの作成ができないので、LinuxからClearDBへ接続してやり、DB周りを整える。
その後、DB作成周りだけスキップした状態で、通常通りインストールを行うといった流れで環境を作成しております。
(わりと無理矢理ですねw)

一応、上記の手順でインストールは完了するのですが、管理画面より商品マスターを表示し、商品の詳細を確認しようとすると、システムエラーが発生してしまうようです。

自分で新規に商品を追加すると、エラーは発生しないので、微妙にデータのinsertが失敗しているのではないかと思っています。

ざっと確認した感じでは、上手く行かなかった部分は上記ぐらいじゃないかと思います。

 

久々の長編になりましたが、AzureへEC-CUBE3.0.1をインストールは以上になります。

0 件のコメント:

コメントを投稿