01.申請 Windows Azure 免費試用帳戶 (一組微軟帳號、一張信用卡)
02.從 https://portal.azure.com/ 登入
03.New→Web App
App name:liujiaje (.azurewebsites.net)
Subscription:......
Resource Group:Create new:liujiajeResources
OS:Windows
App Service plan/Location:Create new→ServicePlana3c2506d-99f2(S1)(New) Central US
Application Insights:Off
勾選 Pin to dashboard
Create
等待一段時間後就完成了
可以抄一下登入 ftp 的帳號與密碼以及網站首頁
04.變更 php 的版本,調整設定
All resources→liujiaje(App Service)→SETTINGS→Application settings→PHP version:7.0→Save
建立 .user.ini ,裡面寫上 display_errors=On,存檔,上傳到 /site/wwwroot。這樣有錯誤發生的時候,可以看到較詳細的錯誤訊息。
All resources→liujiaje(App Service)→Overview→Restart→Yes 重新整理服務,這樣 .user.ini 的設定可以馬上套用
05.測試
建立 phpinfo.php 裡面就呼叫 phpinfo(); ,測試看看。例如 http://liujiaje.azurewebsites.net/phpinfo.php
建立 index.php 並寫入程式碼,這個可以變成首頁。
06.加入其他擴充元件(以 mongodb 為例)
建立 d:\home\site\ext
從 http://pecl.php.net/package/mongodb 下載 php_mongodb.dll (注意:non-thread-safe,vc##,x86/x64)(對應的資訊請參考 phpinfo )
把 dll 上傳到 ext 中,例如 php_mongodb.dll
建立 d:\home\site\ini
建立 extensions.ini 裡面寫上 extension=d:\home\site\ext\php_mongodb.dll 存檔並上傳到 d:\home\site\ini 中
All resources→liujiaje(App Service)→SETTINGS→Application settings→App settings:Key(PHP_INI_SCAN_DIR),Value(d:\home\site\ini)→Save
重新啟動 App Service 服務,再執行 phpinfo ,就可以看到 mongodb 正確啟動了
07.加入其他擴充元件所需要的SDK(以 mongodb 為例)
先加入 Composer。All resources→liujiaje(App Service)→DEVELOPMENT TOOLS→Extensions→Add→選取 Composer→OK→OK
All resources→liujiaje(App Service)→DEVELOPMENT TOOLS→Extensions→Composer→Browse→DebugConsole (可以神奇的在網頁上執行 命令列模式)
在命令列模式(Kudu Remote Execution Console)底下執行下面指令(用 linux 指令)
cd site→cd wwwroot→ls -al→composer require mongodb/mongodb→等畫面回應成功→這樣 SDK 也安裝完畢
08.安裝 Azure Cosmos DB 的 mongodb
New→Cosmos DB
ID:liujiaje
API:MongoDB
Subscription:......
ResourceGroup:Use existing:liujiajeResources
Location:Central US
勾選 Pin to dashboard
Create
等待一段時間後就完成了
選點 SETTINGS→Connection String→可以抄一下 connection string
09.寫一個 mongodb.php,上傳到 wwwroot 中並測試即完成
參考程式碼如下
<?php
// echo extension_loaded("mongodb") ? "loaded" : "not loaded";
// echo '<br />' . "\r\n";
require 'vendor/autoload.php';
$client = new MongoDB\Client("mongodb://liujiaje:......liujiaje.documents.azure.com:#####/?ssl=true&replicaSet=globaldb");
$collection = $client->demo->beers;
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>