Conozca los runtimes de PHP, los paquetes integrados y las extensiones que admite Function Compute.
Runtimes de PHP
A continuación se muestran los runtimes de PHP compatibles con Function Compute.
|
Versión |
Sistema operativo |
Arquitectura |
|
PHP 7.2 |
Linux |
x86_64 |
Paquetes de PHP integrados
El runtime de PHP incluye los siguientes paquetes integrados.
|
Paquete |
Versión |
Referencia |
|
oss |
v2.4.3 |
|
|
tablestore |
v4.1.1 |
|
|
mns |
v1.3.5.5 |
Alibaba Cloud Simple Message Queue (formerly MNS) SDK for PHP |
|
fc |
v1.2.1 |
Extensiones de PHP integradas
Built-in extensions
Para listar las extensiones instaladas, agregue print_r(get_loaded_extensions()); al código de su función.
|
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 |
Ninguna |
Ninguna |
Built-in extension example
Este ejemplo utiliza json para analizar sintácticamente una cadena JSON e imprimir el resultado:
<?php
function handler($event, $context) {
var_dump(json_decode('{"a":123, "b":true, "c":"abcd", "d":{"a":123}}', true));
return "bye";
}
Instalar extensiones de PHP no integradas
A continuación se muestra cómo instalar una extensión de PHP no integrada, con MongoDB como ejemplo.
Prerequisites
Tener docker instalado. Para más información sobre el procedimiento, consulte Step 2: Configure your AccessKey pair.
Haber creado una función que se ejecute en un runtime de PHP. Para más información sobre el procedimiento, consulte Create an event-triggered function.
Procedure
-
Ejecute el siguiente comando desde el directorio de su proyecto para iniciar el contenedor del runtime de PHP y montar el directorio actual en /code:
sudo docker run -v $(pwd):/code -it --entrypoint="" registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest bashNotaEn Windows, reemplace
$(pwd)por la ruta absoluta del directorio. -
Instale la extensión de MongoDB y copie mongodb.so en el directorio /code.
-
Instale la extensión de MongoDB:
pecl install mongodb -
Busque el archivo de la extensión de MongoDB:
find /usr -name "mongodb.so" -
Copie el archivo de la extensión en /code:
cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /code -
Salga del contenedor:
exit -
Compruebe que mongodb.so exista en su directorio local.
lsResultado esperado:
mongodb.so
-
Inicie sesión en la consola de Function Compute. En el panel de navegación izquierdo, elija .
En la barra de navegación superior, seleccione una región. En la página Functions, haga clic en la función de destino.
-
En la página de detalles de la función, haga clic en la pestaña Code y cree una carpeta extension en el directorio del archivo controlador.
NotaLa carpeta extension debe estar en el mismo nivel que bootstrap.
Agregue mongodb.so a la carpeta extension y cree mongodb.ini dentro de la misma carpeta extension.
-
Edite el archivo mongodb.ini.
Agregue la siguiente línea a mongodb.ini:
extension=/code/extension/mongodb.so
Descargue los archivos de otras extensiones personalizadas:
Información adicional
Para más información sobre cómo crear una extensión personalizada a partir de una extensión integrada, consulte Add or remove built-in PHP extensions
Para instalar la extensión de MongoDB en un runtime personalizado: How to install a custom extension in a custom runtime.