]> gitweb.fluxo.info Git - puppet-php.git/commitdiff
Support both PHP 5 and 7, defaults to 5
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 2 Nov 2017 15:01:00 +0000 (13:01 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 2 Nov 2017 15:01:00 +0000 (13:01 -0200)
13 files changed:
manifests/config.pp
manifests/ffmpeg.pp [deleted file]
manifests/imap.pp
manifests/init.pp
manifests/series5.pp [new file with mode: 0644]
manifests/series5/defaults.pp [moved from manifests/defaults.pp with 85% similarity]
manifests/series5/hardened.pp [moved from manifests/hardened.pp with 94% similarity]
manifests/series5/packages/default.pp [moved from manifests/packages/default.pp with 92% similarity]
manifests/series5/packages/dpa.pp [moved from manifests/packages/dpa.pp with 98% similarity]
manifests/series5/packages/ppa.pp [moved from manifests/packages/ppa.pp with 97% similarity]
manifests/series7.pp [new file with mode: 0644]
manifests/series7/defaults.pp [new file with mode: 0644]
manifests/series7/hardened.pp [new file with mode: 0644]

index b92ea261b71840d2a49197d79d9bc7000fa2595b..93c0e5be94df0b2bd7a1d221e7bbf4ad4d510eff 100644 (file)
@@ -1,11 +1,18 @@
-define php::config($order = '20', $value, $ensure = 'present', $sapi = 'apache2') {
-  file { "${::php::folder}/${sapi}/conf.d/${order}-${name}.ini":
+define php::config($series = '5', $order = '20', $value, $ensure = 'present', $sapi = 'apache2') {
+  if $series == '5' {
+    $folder = $::php::series5::folder
+  }
+  else {
+    $folder = $::php::series7::folder
+  }
+
+  file { "${folder}/${sapi}/conf.d/${order}-${name}.ini":
     ensure  => $ensure,
     owner   => root,
     group   => root,
     mode    => '0644',
     content => "${name}=${value}\n",
-    require => File["${::php::folder}/${sapi}/conf.d"],
+    require => File["${folder}/${sapi}/conf.d"],
     notify  => $sapi ? {
       'apache2' => Service['apache2'],
       default   => undef,
diff --git a/manifests/ffmpeg.pp b/manifests/ffmpeg.pp
deleted file mode 100644 (file)
index 3997cb1..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-class php::ffmpeg {
-  package { 'php-ffmpeg':
-    ensure  => present,
-  }
-}
index 381add62c97e4c418211c90554fd5cad4cf21554..805951ddc22d72c08ef4ce5215318b37f3142281 100644 (file)
@@ -1,5 +1,10 @@
-class php::imap inherits php {
-  package { 'php5-imap':
+class php::imap {
+  $pack = $::php::series ? {
+    '5'      => 'php5-imap',
+     default => 'php-imap',
+  }
+
+  package { "${pack"}:
     ensure => installed,
   }
 }
index edd0c2bcf8ea2a36c040c5283e60c8c4fc81913c..3c699fcd7926a96cc9a19a61a1855f423f9e4aec 100644 (file)
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-class php($hardened = true) {
-  case $::lsbdistcodename {
-    'xenial': {
-      include php::packages::ppa
-    }
-    'stretch': {
-      include php::packages::dpa
-    }
-    default: {
-      include php::packages::default
-    }
-  }
-
-  $folder = $::lsbdistcodename ? {
-    'xenial'  => '/etc/php/5.6',
-    'stretch' => '/etc/php/5.6',
-    default   => '/etc/php5',
-  }
-
-  file { [ "${folder}", "${folder}/cli", "${folder}/apache2", "${folder}/cli/conf.d", "${folder}/apache2/conf.d" ]:
-    ensure  => directory,
-    owner   => root,
-    group   => root,
-    mode    => '0755',
-    require => Package['php5'],
-  }
-
-  #file { "${folder}/cli/php.ini":
-  #  ensure  => present,
-  #  owner   => root,
-  #  group   => root,
-  #  mode    => '0644',
-  #  source  => [ "puppet:///modules/site_php/cli/${::fqdn}/php.ini",
-  #               "puppet:///modules/site_php/cli/${::domain}/php.ini",
-  #               "puppet:///modules/php/cli/php.${::operatingsystem}_${::lsbdistcodename}.ini",
-  #               "puppet:///modules/php/cli/php.${::operatingsystem}.ini",
-  #               "puppet:///modules/php/cli/php.ini" ],
-  #  require => [ Package['php5'], File["${folder}/cli"] ],
-  #}
-
-  #file { "${folder}/apache2/php.ini":
-  #  ensure  => present,
-  #  owner   => root,
-  #  group   => root,
-  #  mode    => '0644',
-  #  source  => [ "puppet:///modules/site_php/apache2/${::fqdn}/php.ini",
-  #               "puppet:///modules/site_php/apache2/${::domain}/php.ini",
-  #               "puppet:///modules/php/apache2/php.${::operatingsystem}_${::lsbdistcodename}.ini",
-  #               "puppet:///modules/php/apache2/php.${::operatingsystem}.ini",
-  #               "puppet:///modules/php/apache2/php.ini" ],
-  #  notify  => Service['apache2'],
-  #  require => [ Package['php5'], File["${folder}/apache2"] ],
-  #}
-
-  include php::resources
-  include php::defaults
-
-  if $hardened == true {
-    include php::hardened
+class php(
+  $series   = '5',
+  $hardened = true,
+){
+  class { "php::series${series}":
+    hardened => $hardened,
   }
 }
diff --git a/manifests/series5.pp b/manifests/series5.pp
new file mode 100644 (file)
index 0000000..50ab6f4
--- /dev/null
@@ -0,0 +1,61 @@
+class php::series5($hardened = true) {
+  case $::lsbdistcodename {
+    'xenial': {
+      include php::series5::packages::ppa
+    }
+    'stretch': {
+      include php::series5::packages::dpa
+    }
+    default: {
+      include php::series5::packages::default
+    }
+  }
+
+  $folder = $::lsbdistcodename ? {
+    'xenial'  => '/etc/php/5.6',
+    'stretch' => '/etc/php/5.6',
+    default   => '/etc/php5',
+  }
+
+  file { [ "${folder}", "${folder}/cli", "${folder}/apache2", "${folder}/cli/conf.d", "${folder}/apache2/conf.d" ]:
+    ensure  => directory,
+    owner   => root,
+    group   => root,
+    mode    => '0755',
+    require => Package['php5'],
+  }
+
+  #file { "${folder}/cli/php.ini":
+  #  ensure  => present,
+  #  owner   => root,
+  #  group   => root,
+  #  mode    => '0644',
+  #  source  => [ "puppet:///modules/site_php/cli/${::fqdn}/php.ini",
+  #               "puppet:///modules/site_php/cli/${::domain}/php.ini",
+  #               "puppet:///modules/php/cli/php.${::operatingsystem}_${::lsbdistcodename}.ini",
+  #               "puppet:///modules/php/cli/php.${::operatingsystem}.ini",
+  #               "puppet:///modules/php/cli/php.ini" ],
+  #  require => [ Package['php5'], File["${folder}/cli"] ],
+  #}
+
+  #file { "${folder}/apache2/php.ini":
+  #  ensure  => present,
+  #  owner   => root,
+  #  group   => root,
+  #  mode    => '0644',
+  #  source  => [ "puppet:///modules/site_php/apache2/${::fqdn}/php.ini",
+  #               "puppet:///modules/site_php/apache2/${::domain}/php.ini",
+  #               "puppet:///modules/php/apache2/php.${::operatingsystem}_${::lsbdistcodename}.ini",
+  #               "puppet:///modules/php/apache2/php.${::operatingsystem}.ini",
+  #               "puppet:///modules/php/apache2/php.ini" ],
+  #  notify  => Service['apache2'],
+  #  require => [ Package['php5'], File["${folder}/apache2"] ],
+  #}
+
+  include php::resources
+  include php::series5::defaults
+
+  if $hardened == true {
+    include php::series5::hardened
+  }
+}
similarity index 85%
rename from manifests/defaults.pp
rename to manifests/series5/defaults.pp
index a36c9a9f473aaac704d69e2eb46de65b15e8f4bf..15cb8a232f7139610a77152c6e554faabdc92fdb 100644 (file)
@@ -1,4 +1,4 @@
-class php::defaults {
+class php::series5::defaults {
   php::config {
     'error_reporting'     : value => 'E_ALL & ~E_NOTICE & ~E_STRICT';
     'post_max_size'       : value => '100M';
similarity index 94%
rename from manifests/hardened.pp
rename to manifests/series5/hardened.pp
index 5340dd7e935c5af59f1b10488474877607958799..e5124022212584fab71e0701fb2b410917e7964b 100644 (file)
@@ -1,4 +1,4 @@
-class php::hardened {
+class php::series5::hardened {
   php::config {
     'allow_url_fopen'   : value => 'Off';
     'allow_url_include' : value => 'Off';
similarity index 92%
rename from manifests/packages/default.pp
rename to manifests/series5/packages/default.pp
index e1f2bf1300dbf57a7a676dc41f095bca4b55bcdf..f16e03ef879b0cf4865915f9f1df35c4c688bb69 100644 (file)
@@ -1,4 +1,4 @@
-class php::packages::default {
+class php::series5::packages::default {
   # The needed packages: we could also try libapache2-mod-php5filter
   package { [ 'php5', 'php5-mysql', 'php5-sqlite', 'php5-cli', 'php5-curl', 'php5-gmp', 'libapache2-mod-php5' ]:
     ensure => installed,
similarity index 98%
rename from manifests/packages/dpa.pp
rename to manifests/series5/packages/dpa.pp
index b09b0610372e735f139c45b457f1f7e9860b51ab..f9fad94faa0e3286a80f108318942568d592ec7f 100644 (file)
@@ -1,4 +1,4 @@
-class php::packages::dpa {
+class php::series5::packages::dpa {
   file { '/etc/apt/trusted.gpg.d/deb.sury.org-php.gpg':
     ensure  => present,
     owner   => "root",
similarity index 97%
rename from manifests/packages/ppa.pp
rename to manifests/series5/packages/ppa.pp
index e38cccb4419e862156324b6f86accc2d233dcdf6..f821ab4df30b4dce791ace9d764678697c2567ec 100644 (file)
@@ -1,4 +1,4 @@
-class php::packages::ppa {
+class php::series5::packages::ppa {
   #package { 'python-software-properties':
   #  ensure => present,
   #}
diff --git a/manifests/series7.pp b/manifests/series7.pp
new file mode 100644 (file)
index 0000000..47fa8f9
--- /dev/null
@@ -0,0 +1,25 @@
+class php::series7($hardened = true) {
+  $folder = '/etc/php/7.0'
+
+  package { [ 'php', 'php-mysql', 'php-sqlite3', 'php-cli', 'php-curl', 'php-gmp', 'libapache2-mod-php7.0' ]:
+    ensure => installed,
+  }
+
+  # Optional packages
+  package { [ "php-gd", "php-imagick" ]:
+    ensure => installed,
+  }
+
+  # The needed apache modules
+  #apache::module { 'php':
+  #  ensure  => present,
+  #  require => Package['libapache2-mod-php7.0'],
+  #}
+
+  include php::resources
+  include php::series7::defaults
+
+  if $hardened == true {
+    include php::series7::hardened
+  }
+}
diff --git a/manifests/series7/defaults.pp b/manifests/series7/defaults.pp
new file mode 100644 (file)
index 0000000..936d165
--- /dev/null
@@ -0,0 +1,7 @@
+class php::series7::defaults {
+  php::config {
+    'error_reporting'     : series => '7', value => 'E_ALL & ~E_NOTICE & ~E_STRICT';
+    'post_max_size'       : series => '7', value => '100M';
+    'upload_max_filesize' : series => '7', value => '100M';
+  }
+}
diff --git a/manifests/series7/hardened.pp b/manifests/series7/hardened.pp
new file mode 100644 (file)
index 0000000..73cf21a
--- /dev/null
@@ -0,0 +1,8 @@
+class php::series7::hardened {
+  php::config {
+    'allow_url_fopen'   : series => '7', value => 'Off';
+    'allow_url_include' : series => '7', value => 'Off';
+    'disable_functions' : series => '7', value => 'pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,phpinfo, system, exec, shell_exec, passthru, proc_get_status, proc_open, popen, proc_close, proc_nice, proc_terminate, pcntl_exec, proc_open, show_source, dl, symlink, system_exec';
+    #series => '7', value => 'disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,phpinfo, system, exec, shell_exec, passthru, proc_get_status, proc_open, popen, proc_close, proc_nice, proc_terminate, pcntl_exec, proc_open, curl_init, parse_ini_file, show_source, dl, symlink, syslog, mail, system_exec',
+  }
+}