PHP Buildpack

Page last updated:

Use the PHP buildpack with PHP or HHVM runtimes.

Supported Software and Versions

The release notes page has a list of currently supported modules and packages.

  • PHP Runtimes
    • php-cli
    • php-cgi
    • php-fpm
  • Third-Party Modules
    • New Relic, in connected environments only.

Push an App

30 Second Tutorial

Getting started with this buildpack is easy. With the cf command line utility installed, open a shell, change directories to the root of your PHP files and push your application using the argument -b https://github.com/cloudfoundry/php-buildpack.git.

Example:

$ mkdir my-php-app
$ cd my-php-app
$ cat << EOF > index.php
<?php
  phpinfo();
?>
EOF
$ cf push -m 128M -b https://github.com/cloudfoundry/php-buildpack.git my-php-app

Change my-php-app in the above example to a unique name on your target Cloud Foundry instance to prevent a hostname conflict error and failed push.

The example above creates and pushes a test application, my-php-app, to Cloud Foundry. The -b argument instructs CF to use this buildpack. The remainder of the options and arguments are not specific to the buildpack, for questions on those consult the output of cf help push.

Here’s a breakdown of what happens when you run the example above.

  • On your PC:
    • It will create a new directory and one PHP file, which just invokes phpinfo()
    • Run cf to push your application. This will create a new application with a memory limit of 128M (more than enough here) and upload our test file.
  • Within Cloud Foundry:
    • The buildpack is executed.
    • Application files are copied to the htdocs folder.
    • Apache HTTPD & PHP are downloaded, configured with the buildpack defaults and run.
    • Your application is accessible at the URL http://my-php-app.example.com (Replacing example.com with the domain of your public CF provider or private instance).

More information about deploying

While the 30 Second Tutorial shows how quick and easy it is to get started using the buildpack, it skips over quite a bit of what you can do to adjust, configure and extend the buildpack. The following sections and links provide a more in-depth look at the buildpack.

Features

Here are some special features of the buildpack.

  • Supports running commands or migration scripts prior to application startup.
  • Supports an extension mechanism that allows the buildpack to provide additional functionality.
  • Allows for application developers to provide custom extensions.
  • Easy troubleshooting with the BP_DEBUG environment variable.
  • Download location is configurable, allowing users to host binaries on the same network (i.e. run without an Internet connection)
  • Smart session storage, defaults to file w/sticky sessions but can also use redis for storage.

Examples

Here are some example applications that can be used with this buildpack.

  • php-info This app has a basic index page and shows the output of phpinfo().
  • PHPMyAdmin A deployment of PHPMyAdmin that uses bound MySQL services.
  • PHPPgAdmin A deployment of PHPPgAdmin that uses bound PostgreSQL services.
  • Drupal A deployment of Drupal that uses bound MySQL service.
  • CodeIgniter CodeIgniter tutorial application running on CF.
  • Stand Alone An example which runs a standalone PHP script.
  • pgbouncer An example which runs the PgBouncer process in the container to pool database connections.
  • phalcon An example which runs a Phalcon based application.
  • composer An example which uses Composer.

Advanced Topics

See the following topics:

You can find the source for the buildpack on GitHub: https://github.com/cloudfoundry/php-buildpack

Proxy Support

If you need to use a proxy to download dependencies during staging, you can set the http_proxy and/or https_proxy environment variables. For more information, see the Proxy Usage Docs.

BOSH Configured Custom Trusted Certificate Support

For versions of PHP 5.6.0 and later, the default certificate location is /usr/lib/ssl/certs, which symlinks to /etc/ssl/certs and supports BOSH configured custom trusted certificates out of the box.

Help and Support

Join the #buildpacks channel in our Slack community if you need any further assistance.

For more information about using and extending the PHP buildpack in Cloud Foundry, see the php-buildpack GitHub repository.

You can find current information about this buildpack on the PHP buildpack release page in GitHub.

License

The Cloud Foundry PHP Buildpack is released under version 2.0 of the Apache License.

Create a pull request or raise an issue on the source for this page in GitHub