paketo-buildpacks / php-builtin-server

PHP Builtin Web Server Buildpack
Apache License 2.0
0 stars 2 forks source link
cnb php

Paketo Buildpack for PHP Built-in Web Server Cloud Native

The PHP Built-in Web Server Buildpack sets up and runs PHP's built-in web server to support PHP applications

The buildpack is published for consumption at gcr.io/paketo-buildpacks/php-builtin-server and paketo-buildpacks/php-builtin-server.

Behavior

This buildpack is the default web-server in the PHP buildpack, and it will pass detection as long as there is a *.php file found in the web directory. More information about how to set the web directory path is available in the "Configuration" section below. Users can declare an explicit intention to use the built-in server if the BP_PHP_SERVER environment variable is set to php-server at build-time this buildpack will participate, however since it is the default web server, the buildpack will also participate if the environment variable isn't set at all.

The buildpack will do the following:

This buildpack requires php at launch time, and will also optionally require composer-packages at launch-time if the application contains a composer.json file or the $COMPOSER environment variable is set.

Configuration

BP_PHP_WEB_DIR

The web directory or document root can be configured via the BP_PHP_WEB_DIR environment variable as a relative path under the app directory. Set the environment variables at build time either directly or through a project.toml file.

pack build flag

pack build my-app --env BP_PHP_WEB_DIR="htdocs"

In a project.toml

[build]
  [[build.env]]
    name = 'BP_PHP_WEB_DIR'
    value = 'htdocs'

Usage

To package this buildpack for consumption:

$ ./scripts/package.sh --version <version-number>

This will create a buildpackage.cnb file under the build directory which you can use to build your app as follows: pack build <app-name> -p <path-to-app> -b build/buildpackage.cnb -b <other-buildpacks..>

To run the unit and integration tests for this buildpack:

$ ./scripts/unit.sh && ./scripts/integration.sh