以1個具體接口為例來展示Windows下騰訊雲PHP SDK的使用

  • 2020 年 2 月 26 日
  • 筆記

以下文檔以1個具體接口為例來展示Windows下騰訊雲PHP SDK的使用

先看目錄再看細節

一、目標:PHP SDK調用CDN日誌下載鏈接查詢接口DescribeCdnDomainLogs

二、前期試驗獲取代碼:用api explorer輕鬆實現,證明後端正常

三、資料準備:

  • 1、下載PHP安裝包
  • 2、用git clone url的方式下載PHP SDK
  • 3、把最初在api explorer里複製下來的DescribeCdnDomainLogs.php放到正確位置

四、環境準備:

  • 1、安裝IIS
  • 2、安裝PHP Manage

五、打開IIS配置PHP環境並調試

  • 1、指定網站根目錄到之前準備的源碼目錄
  • 2、如下圖找到PHP Manager雙擊配置PHP環境

3、回到IIS調試使瀏覽器能正常訪問

六、特別說明

一、目標:PHP SDK調用CDN日誌下載鏈接查詢接口DescribeCdnDomainLogs

二、前期試驗獲取代碼:用api explorer輕鬆實現,證明後端正常

https://console.cloud.tencent.com/api/explorer?Product=cdn&Version=2018-06-06&Action=DescribeCdnDomainLogs

把api explorer里PHP代碼拷貝下來留作後用。把代碼保存DescribeCdnDomainLogs.php。

三、資料準備:

官網文檔鏈接:https://cloud.tencent.com/document/product/228/39232

PHP SDK使用說明:https://cloud.tencent.com/document/sdk/PHP ,其中說明了PHP 5.6.33 版本及以上

1、下載PHP安裝包

Windows PHP 全版本下載地址 https://windows.php.net/downloads/releases/archives/

下載nts版本,為什麼下載nts請參考 https://www.jianshu.com/p/b0da6c99dd4c

我們下載一個PHP5.6裏面的最高版本5.6.40,下一個PHP7裏面的最高版本7.4.2,分別解壓以備後用

這裡要重點注意:php.exe的執行依賴VC庫,配置PHP環境之前先安裝好VC庫,我用的 http://www.downxia.com/downinfo/162121.html

2、用git clone url的方式下載PHP SDK

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

由於github.com沒有中國節點,國內clone有點慢,請耐心等待

Git安裝文件下載地址:https://git-scm.com/download/win

https://github.com/git-for-windows/git/releases/download/v2.25.1.windows.1/Git-2.25.1-64-bit.exe

安裝過程這裡不贅述,可以百度下。

在Windows下有Git GUI和Git Bash兩種方式均可,我用的bash。

git clone https://github.com/TencentCloud/tencentcloud-sdk-php .PHPSDK

等了半個多小時clone完成了,完成後在Administrator的家目錄里找到PHPSDK目錄有36.2 MB

複製PHPSDK目錄到C盤根目錄作為網站源碼以備後用

3、把最初在api explorer里複製下來的DescribeCdnDomainLogs.php放到正確位置

examplescdnv20200225 (這裡我是以日期區分的),examples目錄原本沒有cdn的例子,目錄是我自己建的

注意:這裡如果放的位置不對,那你得調整DescribeCdnDomainLogs.php代碼里的相對路徑

四、環境準備:

我是1核1G內存的Windows2008R2服務器。我們採用IIS+PHPManager來配置IIS+PHP環境。為什麼用PHPManager,因為PHP版本太多了,而PHPManager換PHP版本只需點一個按鈕,且是微軟官網推薦的IIS PHP環境配置軟件。不用phpstudy是因為phpstudy安全漏洞太多。

https://www.iis.net/downloads/community/2010/09/php-manager-for-iis-7

1、安裝IIS

參考https://cloud.tencent.com/developer/article/1557571

2、安裝PHP Manager

官網:https://archive.codeplex.com/?p=phpmanager

下載後解壓查看releases目錄里的releaseList.json說明了版本歷史,我們用版本6,進到目錄6,把較大的文件重命名為PHPManagerForIIS-1.2.0-x64.msi就可以雙擊安裝了(較小的自然是PHPManagerForIIS-1.2.0-x86.msi)

五、打開IIS配置PHP環境並調試

首先運行inetmgr打開IIS

1、指定網站根目錄到之前準備的源碼目錄

2、如下圖找到PHP Manager雙擊配置PHP環境

如上圖,我們只需找到php.exe所在目錄選定php.exe即可完成配置,其他的phpinfo()、php_curl、php_openssl都屬於檢查動作了。此時在cmd命令行就可以調試了:

執行命令cd /d "DescribeCdnDomainLogs.php所在目錄的絕對路徑",比如我的是cd /d "C:PHPSDKexamplescdnv20200225"

注意上面是英文雙引號、環境變量可配可不配

其實一開始我在cmd命令行執行時沒一次性成功,而是報錯如下:

[TencentCloudCommonExceptionTencentCloudSDKException] code: message:cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

翻譯下unable to get local issuer certificate 是無法獲取本地頒發者證書

百度搜了下unable to get local issuer certificate 找到解決方案

參考https://www.jianshu.com/p/f9c575c7f36e

這裡不需要重啟服務器,重啟Web服務、重新開一個cmd命令行窗口即可。

打開你php.exe所在目錄的php.ini,找到curl.cainfo,默認沒配置,需要你下載

https://curl.haxx.se/ca/cacert.pem 並在curl.cainfo里指定絕對路徑,我放到了ext目錄,ext目錄都是php_curl、php_openssl等擴展文件。

添加上curl.cainfo後一次性成功了。

3、回到IIS調試使瀏覽器能正常訪問

PHP5.6.40有bug,FastCGI直接意外退出了。

換用了PHP7.4.2版本,訪問時沒有意外退出,但報500內部錯誤。

經研究,需要把PHP Settings那裡的錯誤配置選成生產環境,設定成Production machine後再通過IE測試就正常了。

六、特別說明

騰訊雲PHP SDK文檔里寫的PHP 5.6.33 版本及以上,PHP5.6.40在其列,在IIS7.5(2008R2的IIS是7.5版本)報錯是IIS7.5和PHP5.6.40兼容有問題,但是cmd命令行下,php5.6.40是正常的,如下圖。