From d798cba49dfe6b7f51f3b4f21312f7ec7adeabc5 Mon Sep 17 00:00:00 2001 From: David de Boer Date: Thu, 4 Jul 2013 11:40:43 +0200 Subject: [PATCH 1/4] Add php_extension_dir fact --- lib/facter/php_extension_dir.rb | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 lib/facter/php_extension_dir.rb diff --git a/lib/facter/php_extension_dir.rb b/lib/facter/php_extension_dir.rb new file mode 100644 index 0000000..8a5222b --- /dev/null +++ b/lib/facter/php_extension_dir.rb @@ -0,0 +1,7 @@ +# Gets the directory where PHP modules are stored. Requires PHP +# to be installed. +Facter.add("php_extension_dir") do + setcode do + Facter::Util::Resolution.exec('/usr/bin/php-config --extension-dir') + end +end From 80fc5d0f76e8373f72cccde39a61157adaf7a448 Mon Sep 17 00:00:00 2001 From: David de Boer Date: Thu, 4 Jul 2013 12:16:41 +0200 Subject: [PATCH 2/4] Automatically detect PHP extension dir for Zend modules --- manifests/module/ini.pp | 15 +++++++++++++-- manifests/params.pp | 4 ++++ templates/module.ini.erb | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/manifests/module/ini.pp b/manifests/module/ini.pp index 20396c2..773faa4 100644 --- a/manifests/module/ini.pp +++ b/manifests/module/ini.pp @@ -13,7 +13,12 @@ # } # } # php::module::ini { 'xmlwriter': ensure => absent } -# +# php::module::ini { 'pecl-xdebug': +# zend => true, +# settings => { +# 'xdebug.remote_enable' => '1', +# } +# } define php::module::ini ( $pkgname = false, $settings = {}, @@ -30,12 +35,18 @@ default => "php-${pkgname}", } + # Extension directory where modules are located + $zend_path = $zend ? { + true => $php::params::extension_dir, + false => '', + default => $zend, + } + # INI configuration file file { "/etc/php.d/${modname}.ini": ensure => $ensure, require => Package[$rpmpkgname], content => template('php/module.ini.erb'), } - } diff --git a/manifests/params.pp b/manifests/params.pp index 27f8487..9cbc256 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -28,6 +28,10 @@ $httpd_package_name = 'httpd' $httpd_service_name = 'httpd' $httpd_conf_dir = '/etc/httpd/conf.d' + $extension_dir = "$::php_extension_dir" ? { + '' => '/usr/lib64/php/modules', + default => "$::php_extension_dir", + } } } } diff --git a/templates/module.ini.erb b/templates/module.ini.erb index a46ebeb..2544be3 100644 --- a/templates/module.ini.erb +++ b/templates/module.ini.erb @@ -1,7 +1,7 @@ ; NOTICE : File auto-generated by puppet, do not edit ; Enable <%= @modname %> extension module <% if @zend -%> -zend_extension=<%= @zend %>/<%= @modname %>.so +zend_extension=<%= @zend_path %>/<%= @modname %>.so <% else -%> extension=<%= @modname %>.so <% end -%> From 96c0c8cc23a85975b80a4d56d4cc97a1ffb2642a Mon Sep 17 00:00:00 2001 From: David de Boer Date: Thu, 4 Jul 2013 14:57:41 +0200 Subject: [PATCH 3/4] Retrieve extension_dir without php-config --- lib/facter/php_extension_dir.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/facter/php_extension_dir.rb b/lib/facter/php_extension_dir.rb index 8a5222b..d7b2055 100644 --- a/lib/facter/php_extension_dir.rb +++ b/lib/facter/php_extension_dir.rb @@ -2,6 +2,6 @@ # to be installed. Facter.add("php_extension_dir") do setcode do - Facter::Util::Resolution.exec('/usr/bin/php-config --extension-dir') + Facter::Util::Resolution.exec('php -r "echo ini_get(\'extension_dir\');"') end -end +end \ No newline at end of file From 8b1de2bfbf6f3dfde86189ff9d91c3491f91a819 Mon Sep 17 00:00:00 2001 From: David de Boer Date: Thu, 4 Jul 2013 15:06:46 +0200 Subject: [PATCH 4/4] Differentiate extension dir based on architecture --- lib/facter/php_extension_dir.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/facter/php_extension_dir.rb b/lib/facter/php_extension_dir.rb index d7b2055..1ca82c3 100644 --- a/lib/facter/php_extension_dir.rb +++ b/lib/facter/php_extension_dir.rb @@ -2,6 +2,14 @@ # to be installed. Facter.add("php_extension_dir") do setcode do - Facter::Util::Resolution.exec('php -r "echo ini_get(\'extension_dir\');"') + if File.exist? "/usr/bin/php" + Facter::Util::Resolution.exec('php -r "echo ini_get(\'extension_dir\');"') + else + if Facter.value("architecture") == "x86_64" + "/usr/lib64/php/modules" + else + "/usr/lib/php/modules" + end + end end end \ No newline at end of file