Azure架設PHP-MySQL Web應用程式


 

本教學課程說明如何建立 PHP-MySQL Web 應用程式,以及如何使用 Git 將其部署至 App Service。您會使用 PHP、MySQL 命令列工具 (MySQL 的一部分),以及安裝在您的電腦上的Git。本教學課程裡的說明可運用在包括 Windows、Mac 與 Linux 的任何作業系統上。看完本指南後,您將擁有可在 Azure 上執行的 PHP/MySQL Web 應用程式。

您將了解:

  • 如何使用 Azure 入口網站建立 Web 應用程式和 MySQL 資料庫。由於預設會在 App Service Web Apps 上啟用 PHP,因此您不需要執行任何特殊步驟就能執行 PHP 程式碼。
  • 如何使用 Git 來發行與重新發行應用程式到 Azure。

此外也介紹Azure SDK for PHP給您認識,Azure SDK for PHP內含的元件可讓您開發、部署及管理適用於 Azure 的 PHP 應用程式。尤其是 Azure SDK for PHP 包含下列各項:

  • 適用於 Azure 的 PHP 用戶端程式庫。這些類別庫所提供的介面可供存取 Azure 功能,例如資料管理服務和雲端服務。
  • 適用於 Mac、Linux 和 Windows 的 Azure 命令列介面 (Azure CLI)這是一組命令,可用於部署和管理 Azure 服務,例如 Azure 網站和 Azure 虛擬機器。Azure CLI 可在任何平台上運作,包括 Mac、Linux 和 Windows。
  • Azure PowerShell (僅限 Windows)。這是一組 PowerShell Cmdlet,可用於部署和管理 Azure 服務,例如雲端服務和虛擬機器。
  • Azure 模擬器 (僅限 Windows)。計算和儲存體模擬器都是雲端服務和資料管理服務的本機模擬器,可讓您在本機測試應用程式。Azure 模擬器只能在 Windows 上執行。

設定開發環境

本教學課程假設您已經具備 PHP、MySQL 命令列工具 (MySQL 的一項工具),以及安裝在您的電腦上的 Git。

步驟一 :

建立 Web 應用程式並設定 Git 發佈

  1. 登入 Azure 入口網站
     
  2. 按一下 [新增] 圖示。
     
  3. 按一下 [Marketplace] 旁的 [查看全部]。
     
  4. 依序按一下 [Web + 行動] 和 [Web 應用程式 + MySQL]。然後按一下 [建立]。
     
  5. 輸入資源群組的有效名稱。
     
  6. 輸入新 Web 應用程式的值。
     
  7. 輸入新資料庫的值,包括同意法律條款。
     
  8. 建立 Web 應用程式之後,您將會看到新的 Web 應用程式刀鋒視窗。
     
  9. 在 [設定] 中按一下 [繼續部署],然後按一下 [設定必要設定]。
     
  10. 針對來源選取 [本機 Git 儲存機制]。

     
  11. 若要啟用 Git 發佈,您必須提供使用者名稱和密碼。請寫下您建立的使用者名稱與密碼(如果您之前設定過 Git 儲存機制,系統將會略過此步驟。)
     

 

步驟二 :

取得遠端 MySQL 連線資訊

若要連接至在 Web Apps 中執行的 MySQL 資料庫,您需要連線資訊。若要取得 MySQL 連線資訊,請依照以下步驟執行:

  1. 從資源群組中,按一下資料庫:
     
  2. 從資料庫的 [設定] 中選取 [屬性]。
     
  3. 記下 DatabaseHostUser Id 及 Password 的值。
     

 

步驟三 :

在本機建置及測試您的應用程式

現在您已經建立了 Web 應用程式,您可以在本機開發自己的應用程式,並在測試後進行部署。

在此提供一個簡單的註冊應用程式,註冊應用程式是一項簡單的 PHP 應用程式,您只需提供名稱與電子郵件地址就能註冊活動。先前的註冊者相關資訊會顯示在資料表中。註冊資訊會存放在 MySQL 資料庫。該應用程式包含一個檔案 (複製/貼上以下提供的程式碼):

  • index.php:顯示註冊表單,以及內含註冊者資訊的資料表。

若要在本機建置與執行應用程式,請遵循下列步驟。請注意,這些步驟假設您已經在本機電腦上設定 PHP 和 MySQL 命令列工具 (MySQL 的一部分),且您已經啟用 MySQL 的 PDO 延伸功能

1.使用您先前擷取的 Data SourceUser IdPassword 和 Database 值,連線到遠端 MySQL 伺服器

mysql -h{Data Source] -u[User Id] -p[Password] -D[Database]

2.MySQL 命令提示字元會顯示:

mysql>

3.貼上下列 CREATE TABLE 命令,以在您的資料庫中建立 registration_tbl 資料表:

CREATE TABLE registration_tbl(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), email VARCHAR(30), date DATE);

4.在本機應用程式資料夾的根目錄中建立 index.php 檔案

5.在文字編輯器或 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 Azure 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>

6.在命令提示字元中,移至您的應用程式資料夾並輸入以下命令:

php -S localhost:8000
您現在可以瀏覽至 http://localhost:8000/ 測試應用程式。

 

步驟四 :

發佈您的應用程式

當您在本機完成應用程式測試之後,可以使用 Git 將其發佈至 Web Apps。您將初始化本機 Git 儲存機制並發行該應用程式。

 

注意:

這些步驟與上述「建立 Web 應用程式並設定 Git 發行」小節結尾處的 Azure 入口網站中所示的步驟相同。

 

  1. (選用) 如果您忘記或是錯置了 Git 遠端儲存機制 URL,請瀏覽至 Azure 入口網站上的 Web 應用程式內容。
     
  2. 開啟 GitBash (如果 Git 位於您的 PATH,則為終端機),將目錄變更為應用程式的根目錄,並執行下列命令:
    git init

    git add .

    git commit -m "initial commit"

    git remote add azure [URL for remote repository]

    git push azure master

系統會提示您輸入先前建立的密碼。

3.瀏覽至 http://[site 名稱].azurewebsites.net/index.php 以開始使用該應用程式 (此項資訊將儲存在您的帳戶儀表板上):
 

步驟五 :

將變更發佈至應用程式

若要將變更發佈至應用程式,請依照以下步驟進行:

  1. 在本機對應用程式進行變更。
  2. 開啟 GitBash (如果 Git 位於您的 PATH,則為終端機),將目錄變更為應用程式的根目錄,並執行下列命令:
    git add .

    git commit -m "comment describing changes"

    git push azure master

     系統會提示您輸入先前建立的密碼。

3.瀏覽至 http://[site 名稱].azurewebsites.net/index.php 以查看您的應用程式以及您所做的任何變更:
 

 

注意:

如果您想在註冊 Azure 帳戶前開始使用 Azure App Service,請移至試用 App Service,即可在 App Service 中立即建立短期入門 Web 應用程式。不需要信用卡;沒有承諾。

 

適用於 Azure 的 PHP 用戶端程式庫
 

適用於 Azure 的 PHP 用戶端程式庫提供了一個介面,以便從任何作業系統存取 Azure 功能,例如資料管理服務和雲端服務。您可以透過編輯器或 PEAR 封裝管理員或以手動方式安裝這些程式庫。

如需有關如何使用適用於 Azure 的 PHP 用戶端程式庫的詳細資訊,請參閱
如何從 PHP 使用 Blob 服務 (英文)( https://azure.microsoft.com/en-us/documentation/articles/storage-php-how-to-use-blobs/)、
如何從 PHP 使用資料表服務 (英文)( https://azure.microsoft.com/en-us/documentation/articles/storage-php-how-to-use-table-storage/) 及
如何從 PHP 使用佇列服務 (英文)( https://azure.microsoft.com/en-us/documentation/articles/storage-php-how-to-use-queues/)。

步驟一 :

透過編輯器安裝

 

1.將 Git 可執行檔新增至 PATH 環境變數。

 

2.在專案的根目錄中建立名為 composer.json 的檔案,並新增下列程式碼:

{
"repositories": [
{
"type": "pear",
"url": "http://pear.php.net"
}
],
"require": {
"pear-pear.php.net/mail_mime" : "*",
"pear-pear.php.net/http_request2" : "*",
"pear-pear.php.net/mail_mimedecode" : "*",
"microsoft/windowsazure": "*"
}
}

3.將composer.phar(http://getcomposer.org/composer.phar)下載到專案根目錄中。

 

4.開啟命令提示字元,在專案根目錄中執行此命令

php composer.phar install
 

步驟二:

當作 PEAR 封裝安裝

若要將適用於 Azure 的 PHP 用戶端程式庫當作 PEAR 封裝安裝,請遵循下列步驟:

1.安裝PEAR(http://pear.php.net/manual/en/installation.getting.php)。

2.設定 Azure PEAR 通道:

pear channel-discover pear.windowsazure.com

3.安裝 PEAR 封裝:

pear install pear.windowsazure.com/WindowsAzure-0.4.1

安裝完成後,您即可從您的應用程式參考類別庫。

你也可以進行手動安裝

若要手動下載和安裝 PHP Client Libraries for Azure,請依照下列步驟進行:

1.從 GitHub(http://go.microsoft.com/fwlink/?linkid=252719&clcid=0x404)
下載含有程式庫的 .zip 封存檔。或者,分岔儲存機制並複製到本機電腦(後面這個選項需要有 GitHub 帳戶並在本機安裝 Git)。

注意:

PHP Client Libraries for Azure 相依於
HTTP_Request2(http://pear.php.net/package/HTTP_Request2)、
Mail_mime(http://pear.php.net/package/Mail_mime) 、
Mail_mimeDecode(http://pear.php.net/package/Mail_mimeDecode)
PEAR 封裝。建議使用

PEAR 封裝管理員(http://pear.php.net/manual/en/installation.php)

來安裝這些封裝,以解決這些相依性。

2.將下載之封存檔的 WindowsAzure 目錄複製到應用程式目錄結構中,並從您的應用程式參考類別。

Azure PowerShell 和 Azure 模擬器

Azure PowerShell 是一組 PowerShell Cmdlet,可用於部署和管理 Azure 服務 (例如雲端服務和虛擬機器)。Azure 模擬器是雲端服務和資料管理服務的模擬器,可讓您在本機測試應用程式。只有 Windows 支援這些元件。

安裝 Azure PowerShell 和 Azure 模擬器的建議方式就是使用

 Microsoft Web Platform Installer

(http://go.microsoft.com/fwlink/?linkid=253447&clcid=0x404)。

請注意,您也可以選擇安裝其他開發元件,例如 PHP、SQL Server、適用於 SQL Server for PHP 的 Microsoft 驅動程式和 WebMatrix。

如需有關如何使用 Azure PowerShell 的詳細資訊,請參閱如何安裝及設定 Azure PowerShell

(http://go.microsoft.com/fwlink/?linkid=252718&clcid=0x404) (英文)。

Azure CLI

Azure CLI 是一組命令,可用於部署和管理 Azure 服務,例如 Azure 網站和 Azure 虛擬機器。如需安裝 Azure CLI 的相關資訊,請參閱安裝Azure CLI (https://azure.microsoft.com/zh-tw/documentation/articles/xplat-cli-install/)。

後續步驟

如需詳細資訊,請參閱 PHP 開發人員中心(https://azure.microsoft.com/develop/php/)。

以下可以參考Microsoft Channel9相關影片學習

l   Open Source on Azure 系列課程

l   充分使用 Open Source 加速解決方案

Comments (0)

Skip to main content