summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/vhost.pp2
-rw-r--r--manifests/vhost/php/gallery2.pp31
-rw-r--r--manifests/vhost/php/standard.pp50
-rw-r--r--manifests/vhost/php/webapp.pp2
-rw-r--r--manifests/vhost/template.pp1
-rw-r--r--templates/vhosts/partials/php_settings.erb7
-rw-r--r--templates/vhosts/php_gallery2/php_gallery2.erb13
7 files changed, 86 insertions, 20 deletions
diff --git a/manifests/vhost.pp b/manifests/vhost.pp
index af067d1..4ade9c8 100644
--- a/manifests/vhost.pp
+++ b/manifests/vhost.pp
@@ -56,6 +56,7 @@ define apache::vhost(
$php_use_pear = false,
$php_safe_mode = true,
$php_default_charset = 'absent',
+ $php_settings = {},
$cgi_binpath = 'absent',
$default_charset = 'absent',
$do_includes = false,
@@ -115,6 +116,7 @@ define apache::vhost(
php_use_pear => $php_use_pear,
php_safe_mode => $php_safe_mode,
php_default_charset => $php_default_charset,
+ php_settings => $php_settings,
run_mode => $run_mode,
run_uid => $run_uid,
run_gid => $run_gid,
diff --git a/manifests/vhost/php/gallery2.pp b/manifests/vhost/php/gallery2.pp
index cb4d77d..69a81e1 100644
--- a/manifests/vhost/php/gallery2.pp
+++ b/manifests/vhost/php/gallery2.pp
@@ -50,6 +50,7 @@ define apache::vhost::php::gallery2(
$php_session_save_path = 'absent',
$php_safe_mode_exec_bins = 'absent',
$php_default_charset = 'absent',
+ $php_settings = {},
$do_includes = false,
$options = 'absent',
$additional_options = 'absent',
@@ -115,6 +116,35 @@ define apache::vhost::php::gallery2(
ensure => directory
}
}
+
+ # php upload_tmp_dir
+ case $php_upload_tmp_dir {
+ 'absent': {
+ $real_php_upload_tmp_dir = "/var/www/upload_tmp_dir/$name"
+ }
+ default: { $real_php_upload_tmp_dir = $php_upload_tmp_dir }
+ }
+ # php session_save_path
+ case $php_session_save_path {
+ 'absent': {
+ $real_php_session_save_path = "/var/www/session.save_path/$name"
+ }
+ default: { $real_php_session_save_path = $php_session_save_path }
+ }
+
+ $gallery_php_settings = {
+ safe_mode => 'Off',
+ output_buffering => 'Off',
+ }
+ $open_basedir = "${documentroot}:${real_php_upload_tmp_dir}:${real_php_session_save_path}:${gdatadir}"
+ if $upload_dir != 'absent' {
+ $real_open_basedir = "${open_basedir}:${real_upload_dir}"
+ } else {
+ $real_open_basedir = "${open_basedir}"
+ }
+ $gallery_php_settings[open_basedir] = $real_open_basedir
+
+ $real_php_settings = hash_merge($gallery_php_settings,$php_settings)
# create vhost configuration file
::apache::vhost::php::webapp{$name:
@@ -138,6 +168,7 @@ define apache::vhost::php::gallery2(
php_session_save_path => $php_session_save_path,
php_safe_mode_exec_bins => $real_php_safe_mode_exec_bins,
php_default_charset => $php_default_charset,
+ php_settings => $real_php_settings,
do_includes => $do_includes,
options => $options,
additional_options => $additional_options,
diff --git a/manifests/vhost/php/standard.pp b/manifests/vhost/php/standard.pp
index ecbb79a..c80610b 100644
--- a/manifests/vhost/php/standard.pp
+++ b/manifests/vhost/php/standard.pp
@@ -60,6 +60,7 @@ define apache::vhost::php::standard(
$php_safe_mode_exec_bins = 'absent',
$php_safe_mode_exec_bin_dir = 'absent',
$php_default_charset = 'absent',
+ $php_settings = {},
$do_includes = false,
$options = 'absent',
$additional_options = 'absent',
@@ -77,14 +78,6 @@ define apache::vhost::php::standard(
$htpasswd_path = 'absent'
){
- $real_php_default_charset = $php_default_charset ? {
- 'absent' => $default_charset ? {
- 'On' => 'iso-8859-1',
- default => $default_charset
- },
- default => $php_default_charset
- }
-
::apache::vhost::phpdirs{"${name}":
ensure => $ensure,
php_upload_tmp_dir => $php_upload_tmp_dir,
@@ -154,6 +147,46 @@ define apache::vhost::php::standard(
documentroot_mode => $documentroot_mode,
}
}
+
+ # php upload_tmp_dir
+ case $php_upload_tmp_dir {
+ 'absent': {
+ $real_php_upload_tmp_dir = "/var/www/upload_tmp_dir/$name"
+ }
+ default: { $real_php_upload_tmp_dir = $php_upload_tmp_dir }
+ }
+ # php session_save_path
+ case $php_session_save_path {
+ 'absent': {
+ $real_php_session_save_path = "/var/www/session.save_path/$name"
+ }
+ default: { $real_php_session_save_path = $php_session_save_path }
+ }
+
+ $std_php_settings = {
+ engine => 'On',
+ upload_tmp_dir => $real_php_upload_tmp_dir,
+ session.save_path => $real_php_session_save_path,
+ }
+ if $php_safe_mode_exec_bins != 'absent' {
+ $std_php_settings[safe_mode_exec_dir] = $real_php_safe_mode_exec_bin_dir
+ }
+
+ $real_php_default_charset = $php_settings[default_charset] ? {
+ '' => $default_charset ? {
+ 'On' => 'iso-8859-1',
+ default => $default_charset ? {
+ 'absent' => 'absent',
+ default => $default_charset
+ }
+ },
+ default => $php_settings[default_charset]
+ }
+ if $real_php_default_charset != 'absent' {
+ $std_php_settings[default_charset] = $real_php_default_charset
+ }
+
+ $real_php_settings = hash_merge($std_php_settings,$php_settings)
# create vhost configuration file
::apache::vhost{$name:
@@ -185,6 +218,7 @@ define apache::vhost::php::standard(
php_use_pear => $php_use_pear,
php_safe_mode => $php_safe_mode,
php_default_charset => $real_php_default_charset,
+ php_settings => $real_php_settings,
ssl_mode => $ssl_mode,
htpasswd_file => $htpasswd_file,
htpasswd_path => $htpasswd_path,
diff --git a/manifests/vhost/php/webapp.pp b/manifests/vhost/php/webapp.pp
index bd72eb1..b4b4195 100644
--- a/manifests/vhost/php/webapp.pp
+++ b/manifests/vhost/php/webapp.pp
@@ -53,6 +53,7 @@ define apache::vhost::php::webapp(
$php_session_save_path = 'absent',
$php_safe_mode_exec_bins = 'absent',
$php_default_charset = 'absent',
+ $php_settings = {},
$do_includes = false,
$options = 'absent',
$additional_options = 'absent',
@@ -126,6 +127,7 @@ define apache::vhost::php::webapp(
php_session_save_path => $php_session_save_path,
php_safe_mode_exec_bins => $php_safe_mode_exec_bins,
php_default_charset => $php_default_charset,
+ php_settings => $php_settings,
do_includes => $do_includes,
options => $options,
additional_options => $additional_options,
diff --git a/manifests/vhost/template.pp b/manifests/vhost/template.pp
index 3fe78c9..ce74bfd 100644
--- a/manifests/vhost/template.pp
+++ b/manifests/vhost/template.pp
@@ -71,6 +71,7 @@ define apache::vhost::template(
$php_use_pear = false,
$php_safe_mode = true,
$php_default_charset = 'absent',
+ $php_settings = {},
$run_mode = 'normal',
$run_uid = 'absent',
$run_gid = 'absent',
diff --git a/templates/vhosts/partials/php_settings.erb b/templates/vhosts/partials/php_settings.erb
new file mode 100644
index 0000000..be4662a
--- /dev/null
+++ b/templates/vhosts/partials/php_settings.erb
@@ -0,0 +1,7 @@
+<% php_settings.each do |key,value| -%>
+<% if ['on','off' ].include?(value.downcase) -%>
+ php_admin_flag <%= key %> <%= value %>
+<% else -%>
+ php_admin_value <%= key %> <%= value %>
+<% end -%>
+<% end -%> \ No newline at end of file
diff --git a/templates/vhosts/php_gallery2/php_gallery2.erb b/templates/vhosts/php_gallery2/php_gallery2.erb
index 5935b44..b0a6591 100644
--- a/templates/vhosts/php_gallery2/php_gallery2.erb
+++ b/templates/vhosts/php_gallery2/php_gallery2.erb
@@ -31,18 +31,7 @@
<%- end -%>
<%= scope.function_template('apache/vhosts/partials/authentication.erb') %>
- php_admin_flag engine on
- php_admin_flag safe_mode Off
- php_admin_value output_buffering Off
- <%- unless php_default_charset.to_s == 'absent' then -%>
- php_admin_value default_charset <%= php_default_charset %>
- <%- end -%>
- php_admin_value open_basedir <%= documentroot %>:<%= real_php_upload_tmp_dir %>:<%= real_php_session_save_path %>:<%= gdatadir %><%= ":#{real_upload_dir.to_s}" if upload_dir.to_s != 'absent' %>
- php_admin_value upload_tmp_dir <%= real_php_upload_tmp_dir %>
- php_admin_value session.save_path <%= real_php_session_save_path %>
- <%- unless php_safe_mode_exec_bins.to_s == 'absent' then -%>
- php_admin_value safe_mode_exec_dir <%= real_php_safe_mode_exec_bin_dir %>
- <%- end -%>
+<%= scope.function_template('apache/vhosts/partials/php_settings.erb') %>
# Always rewrite login's
# Source: http://gallery.menalto.com/node/30558
RewriteEngine On