Windows下編譯使用AliyunOSSPHPSDK

鳴鏑發表於2016-06-06

安裝環境:Win7 64 + PHP 5.6 + OSS PHP SDK 2.0.6

安裝PHP

  • 1. 下載安裝包。開啟 http://windows.php.net/download/ ,從PHP 5.6 (5.6.22) -> VC11 x64 Thread Safe (2016-May-26 18:22:23) -> zip下載PHP安裝包,下載到本地後的檔案是php-5.6.22-Win32-VC11-x64.zip。

    > 提示:
    > - 如果您的機器是32位,下載時請選擇VC11 x86 Thread Safe。
    
  • 2. 解包安裝包PHP_INSTALL_DIR為PHP的安裝目錄。在安裝目錄PHP_INSTALL_DIR下解壓php-5.6.22-Win32-VC11-x64.zip,解壓後PHP根目錄是%PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64,這個目錄裡有php.exe等檔案。
  • 3. PHP配置檔案。進入%PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64,複製php.ini-development,並改名為php.ini。
  • 4. 配置PATH。把%PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64加入系統變數Path。方法如下:在我的電腦右擊選擇屬性,然後按照高階系統設定 -> 高階 -> 環境變數,進入環境變數屬性頁,在系統變數中把%PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64加入Path。

    > 注意:
    > - WIN下變數之間的分隔是`;` ,而不是Linux下的`:`。
    
  • 5. 確認安裝認成功。按WIN+R彈出執行視窗,在開啟中輸入cmd回車,即可開啟DOS命令列視窗。在Dos命令列中輸入命令php -v,如果顯示PHP的版本號,說明安裝成功。

安裝PHP cURL extension

  • 6. 複製DLL。將PHP安裝目錄%PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64下的libeay32.dllssleay32.dllext目錄下的php_curl.dll複製到C:WindowsSystem32
  • 7. 修改配置檔案。開啟%PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64下的php.ini,將 ;extension=php_curl.dll 頭部的分號去掉;

安裝composer

  • 8. 下載composer。開啟https://getcomposer.org/download/,從Manual Download中下載當前最新版本1.1.2。下載到本地的檔案是composer.phar。

    > 提示:
    > - composer.phar下載比較慢,請耐心等待。
    
  • 9. 安裝composer。把composer.phar複製到%PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64,並在php-5.6.22-Win32-VC11-x64目錄下建立文字檔案composer.bat,新增如下內容:
@php %~dp0composer.phar %*
  • 10. 確認安裝成功。 在DOS命令列中執行命令composer --version,如果顯示composer的版本號,說明安裝成功。
  • 11. 配置composer。在DOS命令列窗中執行如下命令配置composer。
composer config -g disable-tls true
composer config -g secure-http false
composer config -g repositories.packagist composer http://packagist.phpcomposer.com

安裝phar-composer

  • 12. 下載phar-composer。開啟https://github.com/clue/phar-composer,在Clone or download -> Download ZIP下載原始碼包。下載到本地後的檔案phar-composer-master.zip,解壓後程式碼目錄為phar-composer-master。
  • 13. 編譯phar-composer。在DOS命令列中進入程式碼目錄phar-composer-master,執行命令composer install。然後執行命令php -d phar.readonly=off bin/phar-composer build,完成後會生成phar-composer.phar。
  • 14. 安裝phar-composer。把phar-composer.phar複製到%PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64,並在php-5.6.22-Win32-VC11-x64目錄下建立文字檔案phar-composer.bat,新增如下內容:
@php %~dp0phar-composer.phar %*
  • 15. 確認安裝成功。 在DOS命令列中執行命令phar-composer --version,如果顯示phar-composer的版本號,說明安裝成功。

編譯OSS PHP SDK

  • 16. 下載SDK原始碼。開啟https://github.com/aliyun/aliyun-oss-php-sdk,在Clone or download -> Download ZIP下載原始碼包。下載到本地後的檔案aliyun-oss-php-sdk-master.zip,解壓後程式碼目錄為aliyun-oss-php-sdk-master。
  • 17. 執行測試。在DOS命令列中進入程式碼目錄aliyun-oss-php-sdk-master,執行如下命令配置測試引數:
set OSS_ACCESS_KEY_ID=<AccessKeyID>
set OSS_ACCESS_KEY_SECRET=<AccessKeySecret>
set OSS_ENDPOINT=<ENDPOINT>
set OSS_BUCKET=<BucketName>

然後執行命令vendor/bin/phpunit執行測試用例。

> 提示:
> -  endpoint格式形如`http://oss-cn-hangzhou.aliyuncs.com`。
  • 18. 執行sample。修改aliyun-oss-php-sdk-master/samples/Config.php中的OSS_ACCESS_ID/OSS_ACCESS_KEY/OSS_ENDPOINT/OSS_TEST_BUCKET為有效值。在DOS命令列中進入目錄aliyun-oss-php-sdk-master/samples,執行命令php RunAll.php執行示例程式。
  • 19. 編譯SDK。在DOS命令列進入程式碼目錄aliyun-oss-php-sdk-master,執行命令composer install下載依賴包。然後執行命令
    php -d phar.readonly=off %PHP_INSTALL_DIR%/php-5.6.22-Win32-VC11-x64/phar-composer.phar build . aliyun-oss-php-sdk.phar,完成後會生成OSS PHP SDK包aliyun-oss-php-sdk.phar。

執行OSS PHP SDK測試程式

  • 20. 寫簡單測試程式。新建測試檔案test_oss.php,在該檔案輸入如下內容:
<?php
require_once `aliyun-oss-php-sdk.phar`;

use OSSOssClient;
use OSSCoreOssException;

$endpoint = "<ENDPOINT>";  // http://oss-cn-hangzhou.aliyuncs.com
$accessKeyId = "<ACCESS_KEY_ID/>";
$accessKeySecret = "<ACCESS_KEY_SECRET>";
$bucket = "<BUCKET_NAME>";
    
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    
    // list bucket
    $bucketListInfo = $ossClient->listBuckets();
    $bucketList = $bucketListInfo->getBucketList();
    print("bucketList:
");
    foreach($bucketList as $buck) {
        print($buck->getLocation() . "	" . $buck->getName() . "	" . $buck->getCreatedate() . "
");
    }
    
    // list objects
    $options = array();
    $listObjectInfo = $ossClient->listObjects($bucket, $options);
    $objectList = $listObjectInfo->getObjectList();
    if (!empty($objectList)) {
        print("objectList:
");
        foreach ($objectList as $objectInfo) {
            print($objectInfo->getKey() . "	" . $objectInfo->getSize() . "	" . $objectInfo->getLastModified() . "
");
        }
    }
    
    // put object
    $object = "php-test-key";
    $content = "Hello, OSS!";
    $ossClient->putObject($bucket, $object, $content);
    
    // get object
    $content = $ossClient->getObject($bucket, $object);
    print("key is fetched, the content is: " . $content);
    
    // delete object
    $ossClient->deleteObject($bucket, $object);
} catch (OssException $e) {
    print($e->getMessage() . "
");
    return;
}
?>
  • 21. 執行測試程式。把aliyun-oss-php-sdk.phar複製test_oss.php的同級目錄。在DOS命令列進入test_oss.php,執行命令php test_oss.php執行測試程式。


相關文章