Puppet Class: php

Defined in:
manifests/init.pp

Overview

Entry point class for installing PHP FPM, PHP CLI, PHP extensions and configuring all including PHP FPM process pools.

Parameters:

  • ensure (Enum['absent', 'present', 'latest']) (defaults to: 'present')
  • version (Float) (defaults to: 7.2)
  • manage_repos (Boolean) (defaults to: true)
  • extensions (Optional[Hash]) (defaults to: { })
  • fpm_pools (Optional[Hash]) (defaults to: { })
  • settings (Optional[Hash]) (defaults to: { })
  • cli_settings (Optional[Hash]) (defaults to: { })


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'manifests/init.pp', line 2

class php (
  Enum['absent', 'present', 'latest'] $ensure = 'present',
  Float $version                              = 7.2,
  Boolean $manage_repos                       = true,
  Optional[Hash] $extensions                  = { },
  Optional[Hash] $fpm_pools                   = { },
  Optional[Hash] $settings                    = { },
  Optional[Hash] $cli_settings                = { },
) {

  if ($manage_repos) {
    class { 'php::repo':
      version => $version,
      before  => Class['php::fpm'],
    }
    $package_require = [Class['php::repo']]
  } else {
    $package_require = []
  }

  class { 'php::fpm':
    ensure       => $ensure,
    version      => $version,
    settings     => $settings,
    cli_settings => $cli_settings,
  }

  if ($ensure != 'absent') {
    if (!empty($extensions)) {
      $extensions.each |String $name, Hash $extension| {
        php::extension { $name:
          * => merge({
            ensure      => $ensure,
            php_version => $version,
            require     => $package_require,
          }, $extension)
        }
      }
    }
  } else {
    case ($::facts['osfamily']) {
      'RedHat': {
        case ($version) {
          5.5: {
            $package_prefix = 'php55'
          }
          5.6: {
            $package_prefix = 'php56'
          }
          7.0: {
            $package_prefix = 'php70'
          }
          7.1: {
            $package_prefix = 'php71'
          }
          7.2: {
            $package_prefix = 'php72'
          }
          default: {
            fail("Unsupported PHP version ${version} for RedHat.")
          }
        }
        exec { "yum remove -y ${package_prefix}-*":
          command => "yum remove -y ${package_prefix}-*",
          onlyif  => "yum list installed | grep ${package_prefix}-",
        }
      }
      default: {
        fail("Unsupported osfamily: ${::facts['osfamily']}.")
      }
    }
  }

  if (!empty($fpm_pools)) {
    $fpm_pools.each |String $name, Hash $fpm_pool| {
      $fpm_pool_ensure = $ensure ? {
        'absent' => 'absent',
        default  => 'present',
      }
      php::fpm_pool { $name:
        * => merge({
          ensure => $fpm_pool_ensure,
        }, $fpm_pool)
      }
    }
  }

}