程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Rackspace Cloud SDK for PHP入門指南

Rackspace Cloud SDK for PHP入門指南

編輯:關於PHP編程

Rackspace Cloud SDK for PHP入門指南   Rackspace Cloud SDK for PHP 是一個用來幫助PHP開發者更方便的開發基於OpenStack和Rackspace雲(包括公有和私有雲)應用的SDK。   該SDK包括以下組件:   1.      php-opencloud語言綁定(在”lib”目錄下) 2.      文檔(在”docs/”目錄下) 3.      示例代碼(在”samples/”目錄下)   如何安裝SDK   該SDK可以通過Rackspace的GitHub源中獲得。http://github.com/rackspace/php-opencloud 獲取最容易得到的發行版本(穩定版)的代碼:   <img src="img/tags.png">   1.      點擊Tags鏈接 2.      選擇最新的版本,點擊下面的”zip”或者”.tar.gz”按鈕 3.      在你的下載目錄中找到你剛下載的文件。記住目錄位置,你待會會用到它。   創建一些雲服務器   在這個例子中,你將會寫代碼來創建兩個運行Ubuntu13.04系統的1GB的雲服務器。你需要一個文本編輯器來編輯如下代碼。下面是完整的代碼:      <?php    require('/path/to/lib/php-opencloud.php');      define('IMAGE_UBUNTU', '9922a7c7-5a42-4a56-bc6a-93f857ae2346');    define('FLAVOR_1GB', '3');      // 創建證書    $connection = new \OpenCloud\Rackspace(        RACKSPACE_US,        array( 'username' => 'USERNAME',                     'password' => 'PASSWORD'));      // 連接compute service    $compute = $connection->Compute('cloudServersOpenStack', 'ORD');      // 尋找鏡像    $image = $compute->Image(IMAGE_UBUNTU);       // 獲取flavor object    $flavor = $compute->Flavor(FLAVOR_1GB);      // 創建服務器    for ($i=0; $i<2; $i++) {                    $server= $compute->Server();                 //get a blank server                    $resp= $server->Create(array(                             'name'=> sprintf('server-%d', $i),                             'image'=> $image,                             'flavor'=> $flavor));                    //檢查錯誤                    if($resp->HttpStatus() > 204)                             die("Errorbuilding server. Response is ".$resp->HttpBody());                    //顯示root密碼                    printf("Server[%s] is building. Root password is [%s]\n",                             $server->Name(),$server->adminPass);     }     理解這個程序      <?php    require('/path/to/lib/php-opencloud.php'); <?php是所有PHP代碼所必須的(PHP經常潛入到HTML中)。 Require()語句包含了**php-opencloud**庫。你要編輯這個字段來指明php-opencloud.php文件的准確路徑(在你剛下載的目錄的lib/文件夾下)。      define('IMAGE_UBUNTU', '9922a7c7-5a42-4a56-bc6a-93f857ae2346');     define('FLAVOR_1GB','3'); 這兩個常量定義了Ubuntu13.04鏡像的鏡像ID,和1GB的flavor。要想使用不同的flavor或者鏡像,使用novaclient CLI在Rackspace Control Panle中查詢可用值。      // establish our credentials    $connection = new \OpenCloud\Rackspace(        RACKSPACE_US,        array( 'username' => 'USERNAME',                     'password' => 'PASSWORD'));   這樣創建了一個’$connection’對象使用’\OpenCloud\Rackspace’ connector。該對象需要兩個參數: 1. authentication endpoint的URL(`RACKSPACE_US`是**php-opencloud**提供的一個很有用的常量). 2. 一個包含你的用戶名和密碼的數組。編輯`'USERNAME'``'PASSWORD'`的值來映射你自己的用戶名和密碼。      // 現在,連接 compute service    $compute = $connection->Compute('cloudServersOpenStack', 'ORD');   創建一個”Compute”類,在ORD region中到指定服務實力的連接(在這種情況下,該服務被命名為”cloudServersOpenStack”), 在每次調用時Compute()方法返回一個到服務新的連接。      // first, find the image    $image = $compute->Image(IMAGE_UBUNTU);    // get a flavor object    $flavor = $compute->Flavor(FLAVOR_1GB);   這是另外兩個工廠方法,分別返回一個”Image”對象和一個”Flavor”對象。      // create the server    for ($i=0; $i<2; $i++) {                    $server= $compute->Server();                 //get a blank server                    $resp= $server->Create(array(                             'name'=> sprintf('server-%d', $i),                             'image'=> $image,                             'flavor'=> $flavor));                    //check for errors                    if($resp->HttpStatus() > 204)                             die("Errorbuilding server. Response is ".$resp->HttpBody());                    //display the root password                    printf("Server[%s] is building. Root password is [%s]\n",                             $server->Name(),$server->adminPass); }   這實際上創建了服務器。從”$compute”服務中創建了一個新的,空的服務器對象,使用的是”Server()”方法。 最後,”Server”對象調用”Create”方法,需要傳遞一個屬性數組作為參數。’name’, ‘image’, ‘flavor’是創建一個新的服務器需要的屬性。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved