php Cookbook
(opens in a new tab) (opens in a new tab) (opens in a new tab)
It installs and configures PHP and the PEAR package management system. Also includes resources for managing PEAR (and PECL) packages, PECL channels, and PHP-FPM pools.
Maintainers
This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of Chef cookbook maintainers working together to maintain important cookbooks. If you’d like to know more please visit sous-chefs.org (opens in a new tab) or come chat with us on the Chef Community Slack in #sous-chefs (opens in a new tab).
Requirements
Platforms
- Ubuntu 18.04 / 20.04 / 22.04
- Debian 10 / 11
- CentOS 7+ (incl. Alma & Rocky)
Chef
- Chef 15.3+
Attributes
node['php']['install_method']
= method to install php with, defaultpackage
.node['php']['directives']
= Hash of directives and values to append tophp.ini
, default{}
.node['php']['pear_setup']
= Boolean value to determine whether to set up pear repositories. Default:true
node['php']['pear_channels']
= List of external pear channels to add ifnode['php']['pear_setup']
is true. Default:['pear.php.net', 'pecl.php.net']
The file also contains the following attribute types:
- platform specific locations and settings.
- source installation settings
Resources
This cookbook includes resources for managing:
- php_pear (opens in a new tab)
- php_pear_channel (opens in a new tab)
- php_fpm_pool (opens in a new tab)
Recipes
php::default
Include the default recipe in a run list, to get php
. By default php
is installed from packages but this can be changed by using the install_method
attribute.
php::package
This recipe installs PHP from packages.
php::community_package
This recipe installs PHP from one of two available community package repositories, depending on platform family. This provides the ability to install PHP versions that are no provided by the official distro repositories.
Set node['php']['install_method'] = 'community_package'
to use these repositories.
Please see test/cookbooks/test/recipes/community.rb
for an example of how to use attributes to install the desired version of PHP & its supporting packages, and please refer to the documentation on these community repositories:
- CentOS - Remi’s RPM repository (opens in a new tab)
- Ubuntu - Ondřej Surý PPA (opens in a new tab)
- Debian - Sury repo (opens in a new tab)
php::source
This recipe installs PHP from source.
Usage
Simply include the php
recipe where ever you would like php installed. To install from source override the node['php']['install_method']
attribute within a role or wrapper cookbook:
Role example
name 'php'
description 'Install php from source'
override_attributes(
'php' => {
'install_method' => 'source',
}
)
run_list(
'recipe[php]'
)
Contributors
This project exists thanks to all the people who contribute. (opens in a new tab)
Backers
Thank you to all our backers!
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.