2016年9月3日土曜日

AzureのAppServiceで MySQL In App (プレビュー)なるものを見つけたので、EC-CUBE3を構築してみた

SYSTEM_KDです。

久々に、AzureのAppServiceで作ったEC-CUBE3環境(非公開)のコンソールを開いてたら、「MySQL In App (プレビュー)」なるものを発見したので、EC-CUBE3の環境を構築してみようと思います。

(試して書く方式ではなく、今試しながら作っていくのでゴールできるか分かりません!)

 

Web + MySQL 環境を作成

では早速。

「+新規」から、「すべて表示」を選択。

image

 

表示されたら、「Web + モバイル」を選択。

image

 

フィルターへ「mysql」とかを入力して、「Web App + MySQL」を探す。

image

 

「作成」を押して、必要情報を入力。

その際、「データベース プロバイダー」は、「MySQL In App (プレビュー)」を選択します。

※ちなみにプランは、無料プランです

image

 

入力できたら、作成。

 

PHPMyAdminへアクセス

環境が作成できたので、メニューの中の「MySQL In App (プレビュー)」を選択してみます。

image

 

上部にある「管理」ボタンを押すと、PHPMyAdmin へアクセスできました。

 

image

 

おぉー

 

・・・

・・・

 

IDとパスワード何ですか??

 

・・・

ググってみた結果、DB名は「azuredb」だということが判明しましたが、肝心のIDとパスワードが何なのかよくわからんです。

(デプロイ用の情報とかを入れてみたけどダメでした)

 

・・・・

・・・・

 

あ、よくみたら、先程の MySQL In App (プレビュー) ページに、接続文字列の環境変数というものがありました。

image

 

ここへ入ってるかもしれないので、確認してみます。

(って、どうやって見るんだこれ)

 

MySQL への接続情報を取り出す

ググってみたら、それっぽいページを見つけたので、参考にしてみます。

https://blogs.msdn.microsoft.com/appserviceteam/2016/08/18/announcing-mysql-in-app-preview-for-web-apps/#mysqlconnect

 

接続情報を取り出している部分だけ、お借りして。

以下のように、xxx.php 処理を作成。

<?php

$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';

foreach ($_SERVER as $key => $value) {
if (strpos($key, "MYSQLCONNSTR_localdb") !== 0) {
    continue;
}

$connectstr_dbhost = preg_replace("/^.*Data Source=(.+?);.*$/", "\\1", $value);
$connectstr_dbname = preg_replace("/^.*Database=(.+?);.*$/", "\\1", $value);
$connectstr_dbusername = preg_replace("/^.*User Id=(.+?);.*$/", "\\1", $value);
$connectstr_dbpassword = preg_replace("/^.*Password=(.+?)$/", "\\1", $value);
}

print_r("connectstr_dbhost = " . $connectstr_dbhost . "<br>");
print_r("connectstr_dbname = " . $connectstr_dbname . "<br>");
print_r("connectstr_dbusername = " . $connectstr_dbusername . "<br>");
print_r("connectstr_dbpassword = " . $connectstr_dbpassword . "<br>");

 

FTPでアップして、上記のページアクセス!

とれたー!!

 

って、

https://blogs.msdn.microsoft.com/appserviceteam/2016/08/18/announcing-mysql-in-app-preview-for-web-apps/#mysqlconnect

にのってるIDとパスワードじゃないか・・・。

image

 

ということで、このIDとパスワードを利用して、phpMyAdmin へアクセスできました。

 

EC-CUBE3をインストール

MySQLへの接続情報をゲットできましたので、EC-CUBE3をインストールしてみます。

まずは、ソースを配置します。

 

AzureへEC-CUBE3を設置する際、展開したファイルをアップする方法を行っていたのですが、「vendor」のファイル数が多いのもありうちの貧弱ネット環境だと、結構時間がかかるし、かといって圧縮した状態でアップ後に展開してもタイムアウトして上手く展開できなかったりするので、バシッと行くのがないんですよね。。

ということで、今回はローカルGitからアップします。

(それなりに、時間はかかりますが、他の方法より早いし、後々の管理も楽です)

 

まぁ、好きな方法でファイルをアップします。

ちなみに、今回インストールする、EC-CUBEのバージョンは 3.0.10 です。

 

ファイルがアップできたので、インストールしていきます。

 

save image

次へ進む。

 

save image

 

おっと、権限チェックにひっかかりました。

Azure は自動でディレクトリ作れない仕様だったはずですので、手動で指定されたディレクトリを作成します。

save image

 

ディレクトリを作成すれば、次へ進めるようになるので、次は「サイトの設定」を入力します。

(まぁ説明不要ですね)

 

次はいよいよ、データベースの設定です。

save image

 

取得したMySQLの接続情報を設定します。

(ポート番号含め、全部設定)

 

save image

 

おぉ!!あっさり接続できました!!

 

あとは、テーブルの作成が上手くいくか・・・。

(ClearDBの無料枠は、同時接続数に阻まれて簡単には作成させてもらえないんですよね。。)

 

・・・・

save image

 

完了!!!!

 

まとめ

Azureの無料枠というか無料に踊らされて、何回かEC-CUBE3をインストールしましたが、今回はかなりさくっとインストールできました。

しかも、(PHP7にしている恩恵もあるかもしれませんが)無料枠でもそれなりのレスポンスで動作してくれる気がします。

私の感覚としては、SQLiteで動作させたときよりもレスポンスよさ気です。

 

ということで、ちょっと整えたらプラグインのデモ環境用に公開したいと思います!!

 

以上、AzureのApp Service で MySQL In App (プレビュー)なるものを見つけたので、EC-CUBE3を構築してみた でした。

0 件のコメント:

コメントを投稿