All Products
Search
Document Center

Function Compute (2.0):Overview

Last Updated:Nov 14, 2023

This topic describes the PHP runtimes in which you can write function code in Function Compute.

PHP runtime

Function Compute supports the following PHP runtime:

PHP version

OS

Architecture

PHP 7.2

Linux

x86_64

Built-in PHP packages

Function Compute provides the following built-in packages for PHP runtimes.

Package

Version

Description

oss

v2.4.3

Object Storage Service (OSS) SDK for PHP

tablestore

v4.1.1

TableStore SDK for PHP

mns

v1.3.5.5

Message Service (MNS) SDK for PHP

fc

v1.2.1

Function Compute SDK for PHP

Built-in PHP extensions

Built-in extensions

Note

If you want to view and print the information about installed PHP extensions, you can include print_r(get_loaded_extensions()); in the code of the function that you want to manage.

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

None

None

Example

The following sample code uses json to parse a JSON string and return the parsed content to stdout.

<?php
function handler($event, $context) {
    var_dump(json_decode('{"a":123, "b":true, "c":"abcd", "d":{"a":123}}', true));
    return "bye";
}         

Install non-built-in PHP extensions

To install a non-built-in extension for a PHP runtime, perform the following steps. In this section, MongoDB is used.

Prerequisites

  • Docker is installed. For more information, see the "Install Docker" section of the Install Serverless Devs and Docker topic.

  • A function whose runtime is PHP is created. For more information, see the "Create a function" section of the Manage functions topic.

Procedure

  1. Run the following command in a project directory to start the image of the PHP runtime and mount the current directory to the /code directory:

    sudo docker run -v $(pwd):/code -it --entrypoint=""  registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest  bash
    Note

    If your computer runs Windows, you can replace $(pwd) with a specific absolute directory.

  2. Install the MongoDB extension and copy and paste the mongodb.so file to the /code directory.

    1. Run the following command to install the MongoDB extension in the container:

      pecl install mongodb
    2. Run the following command to find the .zip file extension:

      find /usr -name "mongodb.so"
    3. Run the following command to copy the extension file to the /code directory (that is, copy and paste the file to a directory on your computer):

      cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /code
    4. Run the following command to exit the container:

      exit
    5. Run the following command to check whether the mongodb.so file exists. If the file exists, the .so file is stored on your computer.

      ls

      Expected output:

      mongodb.so
  3. Log on to the Function Compute console. In the left-side navigation pane, click Services & Functions.
  4. In the top navigation bar, select a region. On the Services page, click the desired service.
  5. On the page of a service that you want to manage, click the desired function. On the Code tab, create a folder named extension, and the folder is in the same directory as the handler file of the function.

  6. Add the mongodb.so file to the extension folder and create the mongodb.ini file in the extension folder.

  7. Edit the mongodb.ini file.

    Add the following content to the mongodb.ini file and save the file:

    extension=/code/extension/mongodb.so

If you want to install other custom extensions, click the following links to download the corresponding files based on your business requirements:

References