Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

RSS

rackspace_apache_php (10) Versions 0.0.4

Installs/Configures rackspace_apache_php

Berkshelf/Librarian
Policyfile
Knife
cookbook 'rackspace_apache_php', '= 0.0.4'
cookbook 'rackspace_apache_php', '= 0.0.4', :supermarket
knife cookbook site install rackspace_apache_php
knife cookbook site download rackspace_apache_php
README
Dependencies
Changelog
Quality

Circle CI

rackspace_apache_php-cookbook

A cookbook to provide a web server able to serve php pages with Apache and PHP fpm. It relies on apache2 cookbook and php-fpm. Those cookbooks are pinned on well known working minor version to prevent breaking changes. In addition (even if this is not a requirement), the cookbook will install php packages through PHP cookbook. Indeed most of the time you will need php::default in your role which will conflict with the php-fpm package if they are different. You can disable the installation of php packages with node['rackspace_apache_php']['php_packages_install']['enable'].

Supported Platforms

Attributes

  • node['rackspace_apache_php']['php_version'] : Which PHP version to install, default to PHP 5.6
  • node['rackspace_apache_php']['php_handler']['enable'] : Should it enable Apache PHP handler (applied in "conf.d", so it will be available in EVERY vhost, if you want to manage your own handler configuration, set this attribute to false)
  • node['rackspace_apache_php']['php_handler']['cookbook'] : Where to find the handler configuration , default to rackspace_apache_php cookbook
  • node['rackspace_apache_php']['php_handler']['template'] : Where to find the handler configuration , default to php-handler.conf.erb

Usage

Place a dependency on the rackspace_apache_php cookbook in your cookbook's metadata.rb depends 'rackspace_apache_php' Then, add rackspace_apache_php::default to your runlist

# myrecipe.rb
include_recipe 'rackspace_apache_php::default'

or

# roles/myrole.rb
name "myrole"
description "apache and php role"
run_list(
  "rackspace_apache_php::default"
)

You can change any of the apache2,php-fpm and php cookbook attributes to tune rackspace_apache_php configuration. ** However you should not change ** ['php-fpm']['package_name'],['php-fpm']['service_name'] or ['php']['packages'] (as they are part of this cookbook logic) without checking it works.

In scope

The goal of this library is to do the basic configuration to serve PHP pages through Apache. It will only configure apache2 and the default php handler, users are free to configure their vhost if they need anything more specific.

More in details it :

  • Installs and configure Apache2 web server
  • Installs and configure php-fpm
  • Installs and configure php
  • Configures Apache2 to serve php pages through php-fpm (in conf.d)
  • gets the correct packages and change the configuration according to the php/apache version

Out of scope

Virtual Host are not managed by this cookbook, the configuration provided by this cookbook should not prevent users to extend php or php-fpm configuration. As many features as possible should have a flag to enable/disable them, it will allow to enjoy some parts of the work done by this cookbook (get the correct packages by example) but still be able to configure your own php-fpm pools.

Examples

Apache and PHP 5.5

node.default['rackspace_apache_php']['php_version'] = '5.5'
include_recipe 'rackspace_apache_php::default'

Apache and PHP 5.6

include_recipe 'rackspace_apache_php::default'

Apache and PHP 5.6 without default PHP handler

You will have to add your own Vhost to configure the handler, here is an example using a web_app attribute to pass php-fpm default socket.

include_recipe 'rackspace_apache_php::default'

web_app "my_site" do
  server_name node['hostname']
  server_aliases [node['fqdn'], "my-site.example.com"]
  docroot "/srv/www/my_site"
  cookbook 'mycookbook'
  php_socket '/var/run/php-fpm-www.sock'
end

References

Contributing

  1. Fork the repository on Github
  2. Create a named feature branch (i.e. add-new-recipe)
  3. Write your change
  4. Write tests for your change (if applicable)
  5. Run the tests, ensuring they all pass
  6. Submit a Pull Request

License and Authors

Author:: Julien Berard (julien.berard@rackspace.com)

Dependent cookbooks

yum-ius >= 0.0.0
php-fpm = 0.7.4
php = 1.5.0
chef-sugar >= 0.0.0
apache2 = 3.1.0
apt >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

rackspace_apache_php CHANGELOG

0.0.4

  • Pinned upstream apache2, php and php-fpm cookbooks to minor versions with '='
  • Enabled the default vhost from upstream apache2 only for integration tests

0.0.3

  • Removed unneeded 'libraries' directory

0.0.2

  • Added support for PHP in addition of PHP-fpm

0.0.1

  • First version

Foodcritic Metric
            

0.0.4 failed this metric

FC031: Cookbook without metadata file: /tmp/cook/e6cfe9e3ecc000cf872b4af4/rackspace_apache_php/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/e6cfe9e3ecc000cf872b4af4/rackspace_apache_php/metadata.rb:1