Installs/Configures php-fpm
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.delivery Test with kitchen-dokken and delivery local mode in Travis Jul 26, 2017
attributes Add support for Ubuntu 18.04. Apr 12, 2018
definitions Cookstyle fixes Jul 26, 2017
recipes Add support for Ubuntu 18.04. Apr 12, 2018
spec Add a basic Chefspec coverge test Jul 26, 2017
templates Move templates out of the default directory Jul 26, 2017
test/integration/default/serverspec Add simple test case for php-fpm pools Oct 19, 2014
.foodcritic Resolve foodcritic warnings Jul 26, 2017
.gitignore Update the ignore files Jul 26, 2017
.kitchen.dokken.yml Add Ubuntu 18.04 to test kitchen Apr 24, 2018
.kitchen.yml Add Ubuntu 18.04 to test kitchen Apr 24, 2018
Berksfile Cookstyle fixes Jul 26, 2017
Gemfile.lock Switch test kitchen driver to docker Feb 16, 2017
LICENSE Add a license file Jul 26, 2017 Require Chef 12.14 and remove apt/yum deps Jul 26, 2017
Thorfile Cookstyle fixes Jul 26, 2017
chefignore Update the ignore files Jul 26, 2017

Build Status


Installs and configures PHP-FPM (FastCGI Process Manager), an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites. It's like the unicorn of the PHP world dawg.



  • Debian, Ubuntu
  • CentOS, Red Hat, Fedora
  • Amazon Linux


  • none


  • 12.14 or later


Creates a PHP-FPM configuration file at the path specified. Meant to be deployed with a service init scheme/supervisor such as runit. Please see the application::php-fpm recipe for a complete working example. In depth information about PHP-FPM's configuration values can be found in the PHP-FPM documentation.


Simply include the recipe where you want PHP-FPM installed. Default pool www will be created. To disable pool creation set default['php-fpm']['pools'] to false.

To customize settings and pools you can override default attributes.

Usage in roles:

name "php-fpm"
description "php fpm role"
run_list "recipe[php-fpm]"
override_attributes "php-fpm" => {
    "pools" => {
        "default" => {
            :enable => true
        "www" => {
            :enable => "true",
            :cookbook => "another-cookbook",
            :process_manager => "dynamic",
            :max_requests => 5000,
            :php_options => { 'php_admin_flag[log_errors]' => 'on', 'php_admin_value[memory_limit]' => '32M' }

Creating pools in recipes

Create PHP-FPM pool named 'www' with default settings:

php_fpm_pool "www"

Create PHP-FPM pool named 'www' with custom settings:

php_fpm_pool "www" do
  cookbook "another-cookbook" # get template from another cookbook
  process_manager "dynamic"
  max_requests 5000
  php_options 'php_admin_flag[log_errors]' => 'on', 'php_admin_value[memory_limit]' => '32M'

Delete PHP-FPM pool named 'www':

php_fpm_pool "www" do
  enable false




To get all dependencies:

bundle install


To see available platforms:

bundle exec rake -T

To test particular platform:

bundle exec rake kitchen:default-ubuntu-1604

To test all platforms:

bundle exec rake kitchen:all

Publishing (maintainers only!)

Bump version in metadata.rb, commit and push to master!

bundle exec rake publish

as a result new tag will be created and pushed to github as well as new version will be published on


Please do not bump version when proposing a change, no other rules ;)

License and Author

Author:: Seth Chisamore (

Copyright:: 2011-2017, Chef Software, Inc

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.