2012年9月22日土曜日

Windows Azure web site でMySql+PHPの環境を作成し、Gitを使ってデプロイする方法

このチュートリアルでは、Windows Azure WebsiteのPHP-MySQL環境に、どのようにしてGitを使用して展開するかの方法を説明しています。あなたは、お使いのコンピュータにインス トールされているgitとサーバで動作している、PHP、MySQLコマンドラインツール(MySQLの部分で説明)を使用します。 このチュートリアルの手順は、Windows、Mac、およびLinuxを含む、あらゆるオペレーティングシステム上で実施することができます。このガイ ドを完了すると、あなたは、Windows Azureで実行されているPHP/MySQLのウェブサイトを手に入れることになるでしょう。
以下の内容を説明します。
・Windows Azure Websiteおよびプレビュー管理ポータルを使用してMySQLデータベースを作る為の方法について、 PHPは、デフォルトではWindows AzureのWebサイトで有効になっているため、特別なことはあなたのPHPコードを実行する必要があります。 ・Gitを使用して、Windows Azureにアプリケーションを設定および再設定する方法について説明します。
このチュートリアルに従うことによって、あなたは、PHPの簡単な登録Webアプリケーションを構築します。アプリケーションは、Windows AzureのWebサイトでホストされます。 完成したアプリケーションのスクリーンショットは以下の通りです:
https://www.windowsazure.com/media/devcenter/php/running_app_2.png

開発環境を設定

このチュートリアルでは、Webサーバー上のPHP、MySQLコマンドラインツール(MySQLの章で記載)と、コンピュータにインストールされているgitを前提としています。
注意
あなたがWindows上でこのチュートリアルを実行している場合は、PHPのためにマシン
を設定し、自動的にPHPのためのWindows AzureのSDKをインストールしてIISを
(WindowsのビルトインWebサーバー)を設定できます。

Windows Azureのアカウントを作成する

Webブラウザを開き、http://www.windowsazure.comを参照します
無料のアカウントを開始するには、右上隅にFree trialをクリックし、手順に従ってください。あなたは、クレジットカード番号と身元証明のための携帯電話番号が必要ですが、あなたが請求されることはありません。
https://www.windowsazure.com/media/devcenter/shared/freetrialonwindowsazurehomepage.png
Windows Azure Web Sitesを有効にします
  1. https://account.windowsazure.com/に移動し、Windows Azureのアカウントでログインしてください。
  1. 利用可能なプレビューを表示するpreview featuresをクリックします.
するとプレビュー版で利用可能なタブを開きます
https://www.windowsazure.com/media/devcenter/shared/antares-iaas-preview-01.png
  1. Webサイトへスクロールダウンした後でクリックし、試してみてください
https://www.windowsazure.com/media/devcenter/shared/antares-iaas-preview-05.png
  1. サブスクリプションを選択し、[チェック]をクリックします。
https://www.windowsazure.com/media/devcenter/shared/antares-iaas-preview-06.png

Create a Windows Azure web site and set up Git publishing

Windows AzureのWebサイトとMySQLデータベースを作成するには、次の手順に従います。
  1. Preview Management Portal(プレビュー管理ポータル)にログインします。
  1. ポータルの左下に+Newのアイコンをクリックします。
https://www.windowsazure.com/media/devcenter/shared/new_website.jpg
  1. Websiteをクリックし、CREATE WITH DATABASE.選択します。
https://www.windowsazure.com/media/devcenter/shared/custom_create.jpg
URLの値を入力し、DATABASEの項目をドロップダウンしてCreate a New MySQL Databaseを選択し、REGIONの項目をドロップダウンして、あなたのウェブサイトのデータセンターを選択します。ダイアログの下部にある矢印をクリックします。
https://www.windowsazure.com/media/devcenter/shared/website_details.jpg
  1. データベースの名前の値を入力し、REGIONの項目をドロップダウンしてDATABASEのデータセンターを選択して、あなたは法的条項に同意を示してチェックボックスをオンにします。ダイアログの右下部にあるチェックマークをクリックします。
https://www.windowsazure.com/media/devcenter/shared/new_mysql_db.jpg
Webサイトが作成されたときには、Webサイト"[SITENAME] '正常に完了したのテキストの作成が表示されます。今は、Gitの公開を有効にすることができます。
  1. Webサイトのクイックスタートダッシュボードを開くには、Webサイトのリストに表示されるウェブサイトの名前をクリックします.
https://www.windowsazure.com/media/devcenter/shared/go_to_dashboard.jpg
  1. QuickStartページの下部には、Gitの公開設定をクリックします。
https://www.windowsazure.com/media/devcenter/php/setup_git_publishing.jpg
  1. Gitの公開を有効にするには、ユーザー名とパスワードを提供する必要があります。ユーザー名とパスワードの作成を書き留めておきます。 (あなたが前にGitリポジトリを設定している場合、このステップはスキップされます。)
[[Image( https://www.windowsazure.com/media/devcenter/php/credentials.jpg)]]
それはあなたのリポジトリを設定するのに数秒かかります。
https://www.windowsazure.com/media/devcenter/php/creating_repo.jpg
  1. リポジトリの準備ができたら、あなたは、リポジトリにアプリケーションのファイルをプッシュするための手順が表示されます。これらの手順をメモしておいてください - それらは後で必要になります。
https://www.windowsazure.com/media/devcenter/php/git_instructions.jpg

Get remote MySQL connection information

Windows AzureのWebサイトで実行されているMySQLデータベースに接続するには、接続情報が必要になります。 MySQLの接続情報を取得するには、次の手順に従います。
  1. あなたのウェブサイトのダッシュボードから、ページの右側に表示するView connection stringsのリンクをクリックします。
https://www.windowsazure.com/media/devcenter/shared/connection_string_info.png
  1. データベース、データソース、ユーザーID、およびパスワードの値を書き留めておきます。

Build and test your application locally

今、あなたは、Windows AzureのWebサイトを作成していることを、ローカルでアプリケーションを開発することができ、その試験後に展開します。
登 録アプリケーションは、あなたの名前とメールアドレスを提供することにより、イベントを登録することができ、単純なPHPアプリケーションです。以前の 登録者に関する情報がテーブルに表示されます。登録情報は、MySQLデータベースに格納されます。アプリケーションは1つのファイル(コピー/貼り付 け、以下の利用可能なコード)で構成されています。
index.phpは:登録と登録者情報を含むテーブルのフォームを表示します。
構 築し、ローカルでアプリケーションを実行するには、以下の手順に従ってください。これらの手順は、PHP、MySQLコマンドラインツール(MySQL の部分)と、ローカルマシンにWebサーバーの設定を前提としていないことに注意してください、あなたはMySQL用PDO拡張モジュールが有効になって いること。
以前に取得したデータソース、ユーザーID、パスワード、およびデータベースの値を使用して、リモートのMySQLサーバに接続します。
mysql -h{Data Source] -u[User Id] -p[Password] -D[Database]
The MySQL command prompt will appear:
mysql>
データベース内のregistration_tblテーブルを作成するCREATE TABLEコマンドを次のように貼り付けます。
mysql> CREATE TABLE registration_tbl(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), email VARCHAR(30), date DATE);
Webサーバーのルートディレクトリには、登録という名前のフォルダを作成し、index.phpということでファイルを作成します。
テキストエディタまたはIDEでindex.phpファイルを開き、次のコードを追加し、
TODOコメントにしたがい、必要な変更を完了します。
<html>
<head>
<Title>Registration Form</Title>
<style type="text/css">
    body { background-color: #fff; border-top: solid 10px #000;
        color: #333; font-size: .85em; margin: 20; padding: 20;
        font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif;
    }
    h1, h2, h3,{ color: #000; margin-bottom: 0; padding-bottom: 0; }
    h1 { font-size: 2em; }
    h2 { font-size: 1.75em; }
    h3 { font-size: 1.2em; }
    table { margin-top: 0.75em; }
    th { font-size: 1.2em; text-align: left; border: none; padding-left: 0; }
    td { padding: 0.25em 2em 0.25em 0em; border: 0 none; }
</style>
</head>
<body>
<h1>Register here!</h1>
<p>Fill in your name and email address, then click <strong>Submit</strong> to register.</p>
    <form method="post" action="index.php" enctype="multipart/form-data" >
          Name  <input type="text" name="name" id="name"/></br>
          Email <input type="text" name="email" id="email"/></br>
          <input type="submit" name="submit" value="Submit" />
    </form>
    <?php
        // DB connection info
        //TODO: Update the values for $host, $user, $pwd, and $db
        //using the values you retrieved earlier from the portal.
        $host = "value of Data Source";
        $user = "value of User Id";
        $pwd = "value of Password";
        $db = "value of Database";
        // Connect to database.
        try {
            $conn = new PDO( "mysql:host=$host;dbname=$db", $user, $pwd);
            $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        }
        catch(Exception $e){
            die(var_dump($e));
        }
        // Insert registration info
        if(!empty($_POST)) {
        try {
            $name = $_POST['name'];
            $email = $_POST['email'];
            $date = date("Y-m-d");
            // Insert data
            $sql_insert = "INSERT INTO registration_tbl (name, email, date) 
                       VALUES (?,?,?)";
            $stmt = $conn->prepare($sql_insert);
            $stmt->bindValue(1, $name);
            $stmt->bindValue(2, $email);
            $stmt->bindValue(3, $date);
            $stmt->execute();
        }
        catch(Exception $e) {
            die(var_dump($e));
        }
        echo "<h3>Your're registered!</h3>";
        }
        // Retrieve data
        $sql_select = "SELECT * FROM registration_tbl";
        $stmt = $conn->query($sql_select);
        $registrants = $stmt->fetchAll(); 
        if(count($registrants) > 0) {
            echo "<h2>People who are registered:</h2>";
            echo "<table>";
            echo "<tr><th>Name</th>";
            echo "<th>Email</th>";
            echo "<th>Date</th></tr>";
            foreach($registrants as $registrant) {
                echo "<tr><td>".$registrant['name']."</td>";
                echo "<td>".$registrant['email']."</td>";
                echo "<td>".$registrant['date']."</td></tr>";
            }
            echo "</table>";
        } else {
            echo "<h3>No one is currently registered.</h3>";
        }
  ?>
 </body>
</html>
これで、アプリケーションをテストするためにhttp://localhost/registration/index.phpにブラウズすることができます

Publish your application

ローカルでアプリケーションをテストした後は、Gitを使用して、Windows AzureのWebサイトに公開することができます。あなたのローカルGitリポジトリを初期化し、アプリケーションを公開します。
注意
これらは、Windows AzureのWebサイトを作成し、上記Gitの発行セクションを
設定しての終了時にポータルに示すように、同じ手順です。
  1. あなたがGitのリモートrepostitoryのURLを忘れたり、紛失した場合(省略可能)、ポータル上のDeploymentタブに移動します。
https://www.windowsazure.com/media/devcenter/php/git_instructions.jpg
  1. Open GitBash?(または端末と、GitがPATHにある場合)は、アプリケーションのルートディレクトリに変更し、次のコマンドを実行します。
git init
git add .
git commit -m "initial commit"
git remote add azure [URL for remote repository]
git push azure master
あなたが以前に作成したパスワードの入力を求められます。
https://www.windowsazure.com/media/devcenter/php/php-git-initial-push.png
  1. http://[サイト名].azurewebsites.net/ index.phpのアプリケーション(この情報は、アカウントのダッシュボードに保存されます)を使用して、開始していることを確認します。
https://www.windowsazure.com/media/devcenter/php/running_app_2.png
あなたのアプリケーションを公開した後、あなたはそれに変更を加え始めると、それらを公開するためにGitを使用することができます。

Publish changes to your application

アプリケーションへの変更をパブリッシュするには、次の手順に従います。
  1. ローカルアプリケーションへの変更を行います。
  1. Open GitBash?(または端末が、それはGitをPATHにある)、あなたのアプリケーションのルートディレクトリにディレクトリを変更し、次のコマンドを実行します。
git add .
git commit -m "comment describing changes"
git push azure master
あなたが以前に作成したパスワードの入力を求められます。
https://www.windowsazure.com/media/devcenter/php/php-git-change-push.png
  1. http:// [サイト名].azurewebsites.net/アプリケーションとあなたが行った変更を確認するにはindex.phpに閲覧する:
https://www.windowsazure.com/media/devcenter/php/running_app_2.png
また、管理ポータルの "デプロイ"タブで新しい展開を見ることができます:
https://www.windowsazure.com/media/devcenter/php/php-deployments-list.png

0 件のコメント:

コメントを投稿