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」に変更しています。
3.Webページからインストールを行う
1.インストール開始
2.権限チェック
3.サイト設定
4.データーベースの設定
ClearDBの接続設定を入力します。
5.データーベースの初期化
※デフォルト設定のままでOK
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とパスワードは、「システム設定>メンバー管理」から変更可能です。
10.まとめ
インストール手順を要約すると、Azure環境からテーブルの作成ができないので、LinuxからClearDBへ接続してやり、DB周りを整える。
その後、DB作成周りだけスキップした状態で、通常通りインストールを行うといった流れで環境を作成しております。
(わりと無理矢理ですねw)
一応、上記の手順でインストールは完了するのですが、管理画面より商品マスターを表示し、商品の詳細を確認しようとすると、システムエラーが発生してしまうようです。
自分で新規に商品を追加すると、エラーは発生しないので、微妙にデータのinsertが失敗しているのではないかと思っています。
ざっと確認した感じでは、上手く行かなかった部分は上記ぐらいじゃないかと思います。
久々の長編になりましたが、AzureへEC-CUBE3.0.1をインストールは以上になります。
0 件のコメント:
コメントを投稿