The PHP Runtime

Your Cloud Run function runs in an environment consisting of an operating system version plus add-on packages, language support, and the Functions Framework library that supports and invokes your function. This environment is identified by the language version, and is known as the runtime.

These runtimes use nginx and PHP-FPM to serve requests. To learn more about runtimes in general, and to learn which Ubuntu version each PHP runtime uses, see the Cloud Run functions execution environment.

To get started with PHP on Cloud Run functions, see the Quickstart.

Select your runtime

Cloud Run functions supports several versions of PHP, listed on the Runtime support page. You can select the preferred PHP runtime for your function during deployment.

gcloud

If you're using the Google Cloud CLI, specify the runtime by using the --runtime parameter. NAME specifies the function name. For example:

gcloud functions deploy NAME --runtime php83 --trigger-http FLAGS...

FLAGS... refers to arguments passed during the first deployment of your function. For more information regarding required and optional arguments, see Deploy using the Google Cloud CLI.

Console

If you're using the Google Cloud console, see the Google Cloud console quickstart for detailed instructions.

Function preparation

You can prepare a function directly from the Google Cloud console or write it on your local machine and upload it. To prepare your local machine for PHP development, see Using PHP on Google Cloud.

The library that invokes your function is the PHP Functions Framework.

Source code structure

For Cloud Run functions to find your function's definition, your source code must follow a specific structure. See Writing Cloud Run functions for more information.

PHP Configuration

You configure your PHP function with a php.ini file in your function's root directory. You can view existing PHP configuration settings with the phpinfo() function as shown in the following code sample:


use Psr\Http\Message\ServerRequestInterface;

function phpInfoDemo(ServerRequestInterface $request): string
{
    // phpinfo() displays its output directly in the function's
    // HTTP response, so we don't need to explicitly return it
    //
    // Note: we recommend deleting the deployed Cloud Function once you no
    // longer need it, as phpinfo() may broadcast potential security issues.
    phpinfo();
    return '';
}

Specifying dependencies

You specify dependencies for your function by adding them to a project file called composer.json. For more information, see Specifying dependencies in PHP.

What's next