本文介紹在Function Compute中使用PHP語言編寫函數的運行環境資訊。
PHP運行時
Function Compute目前支援的PHP運行環境如下:
PHP版本 | 作業系統 | 架構 |
PHP 7.2 | Linux | x86_64 |
PHP內建庫
Function Compute的PHP運行環境中內建了一些常用庫(Package)供您直接使用,目前包含的內建庫如下所示。
Package | 版本 | 內建庫介紹 |
oss | v2.4.3 | |
tablestore | v4.1.1 | |
mns | v1.3.5.5 | |
fc | v1.2.1 |
PHP內建擴充
內建擴充列表
如果您需要查看並列印已安裝的PHP擴充,請在目標函數的代碼內寫入print_r(get_loaded_extensions());
。
bcmath | bz2 | calendar | Core |
ctype | curl | date | dom |
exif | fileinfo | filter | ftp |
gd | gettext | gmp | hash |
iconv | imagick | json | libxml |
mbstring | memcached | mysqli | mysqlnd |
openSSL | pcntl | pcre | PDO |
pdo_mysql | Phar | posix | protobuf |
readline | redis | Reflection | session |
shmop | SimpleXML | soap | sockets |
SPL | standard | sysvmsg | sysvsem |
sysvshm | tokenizer | Xdebug | xml |
xmlreader | xmlrpc | xmlwriter | Zend OPcache |
zip | zlib | 無 | 無 |
內建擴充應用樣本
以下範例程式碼使用json
對JSON字串進行解析,解析內容輸出至標準輸出stdout。
<?php
function handler($event, $context) {
var_dump(json_decode('{"a":123, "b":true, "c":"abcd", "d":{"a":123}}', true));
return "bye";
}
安裝PHP非內建擴充
當您需要使用PHP Runtime非內建擴充時,請根據以下步驟安裝。本文以安裝非內建擴充Mongodb為例進行介紹。
前提條件
操作步驟
在專案目錄中執行以下命令,啟動進入PHP Runtime鏡像,並可以將目前的目錄掛載到容器的/code目錄。
sudo docker run -v $(pwd):/code -it --entrypoint="" registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest bash
說明如果您的電腦是Windows作業系統,可以將
$(pwd)
修改為具體的絕對目錄。安裝MongoDB擴充,並將mongodb.so複製到/code目錄。
執行以下命令,在容器內安裝MongoDB擴充。
pecl install mongodb
執行以下命令,找到ZIP擴充。
find /usr -name "mongodb.so"
執行以下命令,複製擴充檔案到/code目錄即拷貝到本地機器的目錄。
cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /code
執行以下命令,退出容器。
exit
執行以下命令,確認是否存在mongodb.so檔案,若存在則證明SO檔案已經存在本地。
ls
預期輸出如下。
mongodb.so
- 登入Function Compute控制台,在左側導覽列,單擊服務及函數。
- 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
在目標服務頁面,單擊目標函數,在函數代碼頁簽中的函數入口檔案同級目錄下建立extension檔案夾。
將mongodb.so檔案添加至extension檔案夾內,並在extension檔案夾內建立mongodb.ini檔案。
編寫mongodb.ini檔案。
將以下內容填寫至mongodb.ini檔案中,並儲存。
extension=/code/extension/mongodb.so
如果需要安裝其他自訂擴充,請按需單擊下方連結,直接下載檔案。