Découvrez les runtimes PHP, les packages intégrés et les extensions pris en charge par Function Compute.
Runtimes PHP
Function Compute prend en charge les runtimes PHP suivants.
|
Version |
Système d'exploitation |
Architecture |
|
PHP 7.2 |
Linux |
x86_64 |
Packages PHP intégrés
Le runtime PHP inclut les packages intégrés suivants.
|
Package |
Version |
Référence |
|
oss |
v2.4.3 |
|
|
tablestore |
v4.1.1 |
|
|
mns |
v1.3.5.5 |
SDK Alibaba Cloud Simple Message Queue (anciennement MNS) pour PHP |
|
fc |
v1.2.1 |
Extensions PHP intégrées
Built-in extensions
Pour répertorier les extensions installées, ajoutez print_r(get_loaded_extensions()); au code de votre fonction.
|
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 |
Aucune |
Aucune |
Built-in extension example
Cet exemple utilise json pour analyser une chaîne JSON et afficher le résultat :
<?php
function handler($event, $context) {
var_dump(json_decode('{"a":123, "b":true, "c":"abcd", "d":{"a":123}}', true));
return "bye";
}
Installer des extensions PHP non intégrées
La procédure suivante explique comment installer une extension PHP non intégrée, en prenant MongoDB comme exemple.
Prerequisites
Docker est installé. Pour plus d'informations, consultez Étape 2 : Configurer votre paire d'AccessKey.
Une fonction s'exécutant dans un runtime PHP est créée. Pour plus d'informations, consultez Créer une fonction déclenchée par événement.
Procedure
-
Exécutez la commande suivante depuis le répertoire de votre projet pour démarrer le conteneur du runtime PHP et monter le répertoire actuel sur /code :
sudo docker run -v $(pwd):/code -it --entrypoint="" registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest bashRemarqueSous Windows, remplacez
$(pwd)par un chemin de répertoire absolu. -
Installez l'extension MongoDB et copiez mongodb.so dans le répertoire /code.
-
Installez l'extension MongoDB :
pecl install mongodb -
Localisez le fichier de l'extension MongoDB :
find /usr -name "mongodb.so" -
Copiez le fichier d'extension vers /code :
cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /code -
Quittez le conteneur :
exit -
Vérifiez que mongodb.so existe dans votre répertoire local.
lsRésultat attendu :
mongodb.so
-
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez .
Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.
-
Sur la page de détails de la fonction, cliquez sur l'onglet Code et créez un dossier extension dans le répertoire du fichier handler.
RemarqueLe dossier extension doit se trouver au même niveau que bootstrap.
Ajoutez mongodb.so au dossier extension et créez mongodb.ini dans ce même dossier.
-
Modifiez le fichier mongodb.ini.
Ajoutez la ligne suivante à mongodb.ini :
extension=/code/extension/mongodb.so
Téléchargez les fichiers pour d'autres extensions personnalisées :
Informations complémentaires
Pour plus d'informations sur la création d'une extension personnalisée basée sur une extension intégrée, consultez Ajouter ou supprimer des extensions PHP intégrées.
Pour installer l'extension MongoDB dans un runtime personnalisé, consultez Comment installer une extension personnalisée dans un runtime personnalisé.