Puppet Class: php::fpm

Defined in:
manifests/fpm.pp

Overview

Install and configure PHP FPM

Parameters:

  • ensure (Enum['absent', 'present', 'latest']) (defaults to: 'present')
  • version (Float) (defaults to: 7.2)
  • service (Hash) (defaults to: { enable => true, ensure => running, })
  • settings (Hash) (defaults to: { })
  • cli_settings (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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'manifests/fpm.pp', line 2

class php::fpm (
  Enum['absent', 'present', 'latest'] $ensure = 'present',
  Float $version                              = 7.2,
  Hash $service                               = {
    enable => true,
    ensure => running,
  },
  Hash $settings                              = { },
  Hash $cli_settings                          = { },
) {

  case ($::facts['osfamily']) {
    'RedHat': {
      case ($version) {
        # @todo Deal with 64 vs. 32 bit for $lib_dir?
        5.5: {
          $package_prefix = 'php55'
          $etc_dir = "/opt/remi/${package_prefix}/root/etc/"
          $lib_dir = "/opt/remi/${package_prefix}/root/lib64/php/"
          $log_dir = "/opt/remi/${package_prefix}/root/var/log/php-fpm"
        }
        5.6: {
          $package_prefix = 'php56'
          $etc_dir = "/opt/remi/${package_prefix}/root/etc/"
          $lib_dir = "/opt/remi/${package_prefix}/root/lib64/php/"
          $log_dir = "/opt/remi/${package_prefix}/root/var/log/php-fpm"
        }
        7.0: {
          $package_prefix = 'php70'
          $etc_dir = "/etc/opt/remi/${package_prefix}/"
          $lib_dir = "/var/opt/remi/${package_prefix}/lib/php/"
          $log_dir = "/var/opt/remi/${package_prefix}/log/php-fpm"
        }
        7.1: {
          $package_prefix = 'php71'
          $etc_dir = "/etc/opt/remi/${package_prefix}/"
          $lib_dir = "/var/opt/remi/${package_prefix}/lib/php/"
          $log_dir = "/var/opt/remi/${package_prefix}/log/php-fpm"
        }
        7.2: {
          $package_prefix = 'php72'
          $etc_dir = "/etc/opt/remi/${package_prefix}/"
          $lib_dir = "/var/opt/remi/${package_prefix}/lib/php/"
          $log_dir = "/var/opt/remi/${package_prefix}/log/php-fpm"
        }
        default: {
          fail("Unsupported PHP version ${version} for RedHat.")
        }
      }

      package { "${package_prefix}-php-cli":
        ensure => $ensure,
        alias  => 'php-cli',
      }

      $bin_php_link_ensure = $ensure ? {
        absent  => 'absent',
        default => 'link'
      }
      file { '/usr/bin/php':
        ensure  => $bin_php_link_ensure,
        target  => "/usr/bin/${package_prefix}",
        require => Package['php-cli'],
      }

      package { "${package_prefix}-php-fpm":
        ensure => $ensure,
        alias  => 'php-fpm',
      }

      if ('absent' != $ensure) {
        service { 'php-fpm':
          * => merge({
            require => [
              Package['php-fpm'],
              File['/usr/lib/systemd/system/php-fpm.service'],
            ],
            status  => 'systemctl status php-fpm | grep "running"'
          }, $service)
        }
      }

      $fpm_service_link_ensure = $ensure ? {
        absent  => 'absent',
        default => 'link'
      }
      file { '/usr/lib/systemd/system/php-fpm.service':
        ensure  => $fpm_service_link_ensure,
        target  => "/usr/lib/systemd/system/${package_prefix}-php-fpm.service",
        require => Package['php-fpm'],
      }

      if ($etc_dir != '/etc/php') {
        $etc_dir_link_ensure = $ensure ? {
          absent  => 'absent',
          default => 'link'
        }
        file { '/etc/php':
          ensure  => $etc_dir_link_ensure,
          target  => $etc_dir,
          force   => true,
          require => [
            Package['php-cli'],
            Package['php-fpm'],
          ],
        }
      }

      if ($lib_dir != '/var/lib/php') {
        $lib_dir_link_ensure = $ensure ? {
          absent  => 'absent',
          default => 'link'
        }
        file { '/var/lib/php':
          ensure  => $lib_dir_link_ensure,
          target  => $lib_dir,
          force   => true,
          require => [
            Package['php-cli'],
            Package['php-fpm'],
          ],
        }
      }

      if ($log_dir != '/var/log/php-fpm') {
        $fpm_log_link_ensure = $ensure ? {
          absent  => 'absent',
          default => 'link'
        }
        file { '/var/log/php-fpm':
          ensure  => $fpm_log_link_ensure,
          target  => $log_dir,
          force   => true,
          require => [
            Package['php-cli'],
            Package['php-fpm'],
          ],
        }
      }
    }
    default: {
      fail("Unsupported osfamily: ${::facts['osfamily']}.")
    }
  }

  if ($ensure != 'absent') {
    if (!empty($settings)) {
      create_ini_settings($settings, {
        path    => '/etc/php/php.ini',
        require => Package['php-fpm'],
        notify  => Service['php-fpm'],
      })
    }

    if (!empty($cli_settings)) {
      create_ini_settings($cli_settings, {
        path    => '/etc/php/php-cli.ini',
        require => Package['php-cli'],
      })
    }
  }
}