Cloud Foundry PHP Buildpack
A buildpack for Cloud Foundry to deploy PHP based applications.
30 Second Tutorial
Getting started with the 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
Please note that you should change my-php-app to some unique name, otherwise you'll get an error and the push will fail.
The example above will create and push 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'll create a new directory and one PHP file, which calls
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.
- It'll create a new directory and one PHP file, which calls
- On Cloud Foundry...
- The buildpack is executed.
- Application files are copied to the
htdocs
folder. - Apache HTTPD & PHP 5.4 are downloaded, configured with the buildpack defaults and run.
- Your application is accessible at the URL http://.cfapps.io (assuming your targeted towards Pivotal Web Services).
More Information
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 docs and links provide a more in-depth look at the buildpack.
- Supported Software
- Features
- Example Applications
- Usage
- Configuration Options
- Composer
- Binaries
- Troubleshooting
- Getting Help
- Development
- License
- Contributing
Supported Software
- Composer
- Composer 0.8
- Web servers
- Apache 2.4
- Nginx 1.5, 1.6, 1.7
- PHP Versions
- PHP 5.4, 5.5, 5.6
- HHVM 3.2
- PHP Runtimes
- php-cli
- php-cgi
- php-fpm
- hhvm
- PHP Extensions
- amqp
- apc
- apcu
- bz2
- curl
- dba
- exif
- fileinfo
- ftp
- gd
- gettext
- gmp
- igbinary
- imagick
- imap
- intl
- ioncube
- ldap
- lua
- mailparse
- mbstring
- mcrypt
- memcache
- memcached
- mongo
- msgpack
- mysql
- mysqli
- opcache
- openssl
- pdo
- pdo_mysql
- pdo_pgsql
- pdo_sqlite
- pgsql
- phalcon
- phpiredis
- pspell
- redis
- snmp
- soap
- sockets
- suhosin
- sundown
- twig
- xcache
- xdebug
- xhprof
- xsl
- yaf
- zip
- zlib
- zookeeper
- Third-Party Modules
- New Relic, in connected environments only.
Features
Here's a list of some special features of the buildpack.
- supports running commands or migration scripts prior to application startup
- download location is configurable, allowing users to host binaries on the same network (i.e. run without an Internet connection)
- supports an extension mechanism that allows the buildpack to provided additional functionality
- allows for application developers to provide custom extensions
- easy troubleshooting with the BP_DEBUG environment variable
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 Postgres services
- Wordpress A deployment of Wordpress that uses bound MySQL service
- Drupal A deployment of Drupal that uses bound MySQL service
- CodeIgniter CodeIgniter tutorial application running on CF
- Stand Alone An example which runs a stand alone PHP script
- pgbouncer An example which runs the pgbouncer process in the container to pool db connections.
- phalcon An example which runs a Phalcon based application.
- composer An example which uses Composer.
Getting Help
If you have questions, comments or need further help with the buildpack you can post to the vcap-dev mailing list. It's a good place for posting question on all of the open source Cloud Foundry components, like this buildpack. Alternatively, if you're using Pivotal Web Services with the buildpack, you could post to the support forums.
License
The Cloud Foundry PHP Buildpack is released under version 2.0 of the Apache License.
Building
The buildpack only supports the two most stable patches for each dependency in the manifest.yml.
- Make sure you have fetched submodules
git submodule update --init
- Get latest buildpack dependencies
BUNDLE_GEMFILE=cf.Gemfile bundle
- Build the buildpack
BUNDLE_GEMFILE=cf.Gemfile bundle exec buildpack-packager [ uncached | cached ]
-
Use in Cloud Foundry
Upload the buildpack to your Cloud Foundry and optionally specify it by name
cf create-buildpack custom_php_buildpack php_buildpack-cached-custom.zip 1 cf push my_app -b custom_php_buildpack
Supported binary dependencies
The PHP buildpack only supports the two most recent stable patches for each dependency in the manifest.yml.
If you want to use previously supported dependency versions, provide the --use-custom-manifest=manifest-including-unsupported.yml
option to buildpack-packager
.
Contributing
Find our guidelines here.
Reporting Issues
This project is managed through Github. If you encounter any issues, bug or problems with the buildpack please open an issue.
The project backlog is on Pivotal Tracker