Tuesday, March 11, 2014

CloudFoundry & PHP: Update

Back in July, I released a build pack for running PHP applications on CloudFoundry.  Today I'm happy to announce a significant update to the build pack!

   https://github.com/dmikusa-pivotal/cf-php-build-pack

This effort is a total rewrite of the original build pack with the following goals.
  • Maintain clean and easily understandable detect, compile and release scripts
  • Execute quickly. Run detect, compile and release scripts with minimal effort, downloading as little as possible.
  • Utilize a default configuration that "just works" for the majority of users.
  • Allow application developers to override default build pack behavior and settings through configuration.
  • Allow the build pack to be extended easily via extensions.
  • Allow application developers to include custom extensions.
  • Not be tied to one particular HTTP server. Support multiple and allow application developers to pick which they use.
  • Provide better insight into the application environment. Allow application and servers to be easily monitored.
  • Integrate all logs and output into loggregator.
The result is a huge improvement, with all the functionality of the old CF PHP & Apache Build Pack and lots of new features including... 
  • Executes quickly. Run detect, compile and release scripts with minimal effort, downloading as little as possible.   
  • Support for the latest versions of Apache HTTPD 2.4 and Nginx 1.5 
  • Support for the latest versions of PHP 5.4 and 5.5 
  • Support for a large set of PHP extensions, including amqp, apc, bz2, curl, dba, gd, gettext, gmp, imap, ldap, mcrypt, mongo, openssl, pdo_pgsql, pgsql, pspell, redis, xdebug and zlib 
  • Versions of HTTPD, Nginx and PHP are automatically upgraded to the latest release just by re-staging an application 
  • Allows for application developers to control which PHP extensions are installed 
  • Allows for application developers to custom configure HTTPD, Nginx and / or PHP 
  • Download location is configurable, allowing users to host binaries on the same network (i.e. run without an Internet connection) 
  • Support for an extension mechanism that allows the build pack to provided additional functionality 
  • Allows for application developers to provide custom extensions 
  • Support for NewRelic with both bound services and when manually specifying a license key 
  • Easy troubleshooting with the BP_DEBUG environment variable 
  • All logging output is routed through stderr & stdout which is sent to loggregator 
If you’re interested in developing PHP applications or running a packaged PHP application on CloudFoundry, please take a look at our “30 Second Tutorial” or one of the build pack samples like PHPMyAdmin, Wordpress or the CodeIgniter Tutorial

Enjoy, and as always, feed back and PR’s are welcome! 

No comments: