当前位置: 首页 > news >正文

Windows下编译使用Aliyun OSS PHP SDK

摘要: WIN环境下搭建Aliyun OSS PHP SDK编译运行环境。从PHP的安装逐步完成,SDK的编译运行。即使没有任何PHP基础,也能顺利完成。

安装环境: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.dll**,**ssleay32.dll**及ext目录下的**php_curl.dll**复制到C:\Windows\System32

  • 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 OSS\OssClient; use OSS\Core\OssException; $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:\n"); foreach($bucketList as $buck) { print($buck->getLocation() . "\t" . $buck->getName() . "\t" . $buck->getCreatedate() . "\n"); } // list objects $options = array(); $listObjectInfo = $ossClient->listObjects($bucket, $options); $objectList = $listObjectInfo->getObjectList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\t" . $objectInfo->getSize() . "\t" . $objectInfo->getLastModified() . "\n"); } } // 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() . "\n"); return; } ?> 
  • 21. 运行测试程序。把aliyun-oss-php-sdk.phar复制test_oss.php的同级目录。在DOS命令行进入test_oss.php,执行命令php test_oss.php运行测试程序。

相关文章:

  • KNN算法与Kd树
  • 2D空间中求一点是否在多边形内
  • ceph基础操作记录
  • zabbix企业应用之定时获取监控数据做报表
  • SQLSERVER之“sqlserver索引、视图、存储过程和触发器的使用”
  • 编译动态库与静态库的注意事项和方法
  • 《写给大忙人的hadoop2》读书笔记(一)大数据定义
  • Flume OG 与 Flume NG 的对比
  • Android:LinearLayout布局中Layout_weight的深刻理解
  • python 库集合
  • 建议Javascript以后都用严格模式
  • 表空间对空闲区的管理方式
  • RegExp
  • Java并发编程(五)Lock
  • 学技术怎可成为”快餐”?
  • Google 是如何开发 Web 框架的
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • android图片蒙层
  • Docker 笔记(2):Dockerfile
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • javascript面向对象之创建对象
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Python 基础起步 (十) 什么叫函数?
  • Spring Boot MyBatis配置多种数据库
  • Tornado学习笔记(1)
  • underscore源码剖析之整体架构
  • windows下使用nginx调试简介
  • 从重复到重用
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 关于使用markdown的方法(引自CSDN教程)
  • 嵌入式文件系统
  • 软件开发学习的5大技巧,你知道吗?
  • 少走弯路,给Java 1~5 年程序员的建议
  • 一文看透浏览器架构
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​Java并发新构件之Exchanger
  • ​Linux·i2c驱动架构​
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • $.ajax中的eval及dataType
  • (16)Reactor的测试——响应式Spring的道法术器
  • (AngularJS)Angular 控制器之间通信初探
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Ruby)Ubuntu12.04安装Rails环境
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (简单) HDU 2612 Find a way,BFS。
  • (九)One-Wire总线-DS18B20
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)Linux+Windows下安装ffmpeg
  • (转)母版页和相对路径
  • ... 是什么 ?... 有什么用处?
  • .net core 3.0 linux,.NET Core 3.0 的新增功能