专栏首页CVM技术交流腾讯云PHP SDK之Windows PHP Composer
原创

腾讯云PHP SDK之Windows PHP Composer

1、安装VC库

php.exe的执行依赖VC库,配置PHP环境之前先安装好VC库,我用的

http://www.downxia.com/downinfo/162121.html

2、下载nts php包并解压(我先下载的PHP5.6.40,调用接口的结果里如果有中文,在命令行下中文显示乱码,换PHP7.4.2后结果里的中文正常显示)

https://windows.php.net/downloads/releases/archives/

为什么下载nts请参考 https://www.jianshu.com/p/b0da6c99dd4c

3、下载cacert.pem

https://curl.haxx.se/ca/cacert.pem

放到PHP解压的包里,然后编辑 php.ini 文件,删除 curl.cainfo 配置项前的分号注释符(;),值设置为保存的证书文件 cacert.pem 的绝对路径。

4、下载composer

https://getcomposer.org/Composer-Setup.exe

找到php.exe路径安装即可

5、下载composer.phar

https://getcomposer.org/composer.phar 放到php.exe所在目录,并在php.exe所在目录新建一个composer.phar.bat的文件,内容为"%~dp0php.exe" "%~dp0composer.phar" %*

请注意:

①composer.phar.bat跟phar.phar.bat的文件类型相同、文件内容相似,可以直接复制一份phar.phar.bat再重命名为composer.phar.bat再改内容。

②没有php.ini的话,copy一份php.ini-production重命名为php.ini

php.ini里php_curl、php_openssl默认是开启的,不要注释掉。

[PHP_CURL]

extension=php_curl.dll

[PHP_OPENSSL]

extension=php_openssl.dll

6、配置环境变量并验证php -v和composer --version

运行

输入php -v查看php版本,输入composer --version查看composer版本。

6、改源到国内(3选1)

composer config -g repo.packagist composer https://pkg.phpcomposer.com/

composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/

composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/

https://packagist.org/查找你要下载的依赖包的项目名称

比如我要下载TencentCloud/tencentcloud-sdk-php的依赖包

只找到1个TencentCloud/tencentcloud-sdk-php

点开链接https://packagist.org/packages/tencentcloud/tencentcloud-sdk-php看到最新版本是3.0.126(随着时间变化,版本会有变化,以你看到最新版为准)

也可以用命令查找,例如composer search --only-name tencentcloud-sdk-php

查询后get到包名全称tencentcloud/tencentcloud-sdk-php

然后输入“composer home 包名全称” 打开包主页(Opens the package's repository URL or homepage in your browser.)

或者输入“composer browse 包名全称”也可以

https://github.com/TencentCloud/tencentcloud-sdk-php

7、执行如下二选一命令安装

①从github下载项目.zip包并解压,解压后删除 composer.json里的内容,在 require 结构体中增加你在composer仓库上看到的最新版本号,例如

{

    "require": {

"tencentcloud/tencentcloud-sdk-php": "3.0.126"

    }

}

然后执行composer install安装项目依赖,执行之前先通过cd /d命令切入项目路径

cd /d "项目跟目录绝对路径",例如

mkdir "C:\tencentcloud-sdk-php-install"

cd /d "C:\tencentcloud-sdk-php-install"

②解压后删除composer.json文件,执行以下命令时会自动创建该文件并增加内容

通过composer require包全称 包版本号来安装项目依赖,执行之前先通过cd /d命令切入项目路径

cd /d "项目跟目录绝对路径",例如

mkdir "C:\tencentcloud-sdk-php-require"

cd /d "C:\tencentcloud-sdk-php-require"

composer require tencentcloud/tencentcloud-sdk-php 3.0.126

第一遍结束后再执行一遍会提示Noting to install or update

8、composer方式获得的源码相对位置跟git clone方式获取的源码相对位置有区别,在代码引用上也有区别

①git clone方式获取的开头第一句话是require_once '../../../TCloudAutoLoader.php';(例子里第1句话其实是git clone方式的,如果是composer方式,需要改第1句话)

②composer方式获取的开头第一句话应该是require '../../../../../../vendor/autoload.php';(需要在require_once '../../../TCloudAutoLoader.php';这句话前面加//注释掉)

9、如果是在Web服务器里调试代码,PHP环境要再开一个配置,否则会有如下报错

[TencentCloud\Common\Exception\TencentCloudSDKException] code: message:cURL error 0: The cURL request was retried 3 times and did not succeed. The most likely reason for the failure is that cURL was unable to rewind the body of the request and subsequent retries resulted in the same error. Turn on the debug option to see what went wrong. See https://bugs.php.net/bug.php?id=47204 for more information. (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

解决办法:命令行执行php -r "echo sys_get_temp_dir();" 打印系统默认temp目录绝对路径,Windows一般是C:\Windows\temp,Linux一般是/tmp,然后在php.ini开启如下配置即可 sys_temp_dir = "系统默认temp目录绝对路径" 。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • workerman搭建ws和wss环境

    workerman是php写的,github地址:https://github.com/walkor/workerman

    我爱你的一诺
  • Windows挂CFS(NFS)中文乱码如何解决

    类似的情况让我想起了Windows入域前修改SID的场景,微软的sysprep既慢还丢家目录数据,最后我用第三方工具SIDCHG又快又好地解决还不丢数据,反馈给...

    我爱你的一诺
  • 【玩转腾讯云】腾讯云API Explorer工具的基本用法,掌握6种SDK的使用

    背景说明:工作需要,我需要使用腾讯云的SDK,但是产品文档在Windows方面的介绍太简略了,我踩了很多坑,我把踩坑、排错、解决过程做了详细记录跟大家分享。我用...

    我爱你的一诺
  • 99%的java程序员都遇到过的笔试题

    这里咱们忽略空格,所以答案就是B,主要的是本道题考察的是Java语言中传参方式和不可变类的知识。

    用户4143945
  • 2018年值得开发者收藏的免费资源

    2018年新年依此,奉上一堆免费资源,赶紧收藏吧! DevFreeBooks https://devfreebooks.github.io ? 在这里你会发现超...

    企鹅号小编
  • 聊聊spring cloud gateway的ForwardedHeadersFilter

    本文主要研究一下spring cloud gateway的ForwardedHeadersFilter

    codecraft
  • 聊聊artemis的lastValueProperty

    activemq-artemis-2.11.0/artemis-core-client/src/main/java/org/apache/activemq/ar...

    codecraft
  • Java如何获取方法参数具体名称?这是个好问题!

    默认情况下,我们是无法获取方法中参数名称的。通过反射机制,也只能得到参数的顺序以及一些没有意义的变量:arg0、arg1等等。

    xjjdog
  • 聊聊artemis的lastValueProperty

    activemq-artemis-2.11.0/artemis-core-client/src/main/java/org/apache/activemq/ar...

    codecraft
  • 原 SpringBoot 2.0 系列00

    石奈子

扫码关注云+社区

领取腾讯云代金券