diff --git a/createlinks b/createlinks index 5a96341..8fa2d98 100644 --- a/createlinks +++ b/createlinks @@ -7,6 +7,9 @@ foreach my $service (qw(php-fpm php56-php-fpm php70-php-fpm php71-php-fpm)){ service_link_enhanced($service, "K16", "6"); service_link_enhanced($service, "K16", "0"); service_link_enhanced($service, "K16", "1"); + foreach my $event qw(webapps-update){ + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/$service"); + } } foreach my $file qw( /etc/php-fpm.conf @@ -37,8 +40,3 @@ event_link("php-pool-dirs", "share-modify", "90"); event_link("php-pool-dirs", "share-modify-server", "90"); event_link("php-pool-dirs", "share-delete", "90"); -event_link("adjust-php-fpm-services", "share-create", "98"); -event_link("adjust-php-fpm-services", "share-modify", "98"); -event_link("adjust-php-fpm-services", "share-modify-server", "98"); -event_link("adjust-php-fpm-services", "share-delete", "98"); -event_link("adjust-php-fpm-services", "webapps-update", "98"); diff --git a/root/etc/e-smith/events/actions/adjust-php-fpm-services b/root/etc/e-smith/events/actions/adjust-php-fpm-services deleted file mode 100644 index a3237c3..0000000 --- a/root/etc/e-smith/events/actions/adjust-php-fpm-services +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use warnings; -use esmith::ConfigDB; -use esmith::util; - -my $c = esmith::ConfigDB->open_ro || die "Couldn't open the configuration database\n"; -my @fpms = qw( - php-fpm - php56-php-fpm - php70-php-fpm - php71-php-fpm -); - -# We need to ensure every versions are stopped, and only then start them all again -# so if we move a pool from one version to another, we won't have a socket conflict - -foreach my $fpm (@fpms){ - esmith::util::serviceControl( - NAME => $fpm, - ACTION => 'stop', - BACKGROUND => 'false') - or warn "Unable to stop $fpm\n"; -} - -foreach my $fpm (@fpms){ - my $service = $c->get($fpm); - if ($service && ($service->prop('status') || 'disabled') eq 'enabled'){ - esmith::util::serviceControl( - NAME => $fpm, - ACTION => 'start', - BACKGROUND => 'false') - or die "Unable to start $fpm\n"; - } -} - diff --git a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/68FastCGIConfig b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/68FastCGIConfig index 56071b2..501d541 100644 --- a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/68FastCGIConfig +++ b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/68FastCGIConfig @@ -36,10 +36,11 @@ _EOF foreach my $share ($a->get_all_by_prop(type => 'share')){ next if ($share->prop('DynamicContent' || 'disabled') ne 'enabled'); my $key = $share->key; + my $ver = $share->prop('PHPVersion') || ''; $OUT .=<<_EOF; Action php$key-fastcgi /php-cgi-bin/php$key-wrapper Alias /php-cgi-bin/php$key-wrapper /var/www/php-cgi-bin/php$key-wrapper -FastCgiExternalServer /var/www/php-cgi-bin/php$key-wrapper -socket /var/run/php-fpm/php$key.sock -pass-header Authorization -idle-timeout 120 +FastCgiExternalServer /var/www/php-cgi-bin/php$key-wrapper -socket /var/run/php-fpm/php$ver-$key.sock -pass-header Authorization -idle-timeout 120 _EOF } } diff --git a/root/etc/e-smith/templates/etc/php-fpm.d/shares.conf/10Shares b/root/etc/e-smith/templates/etc/php-fpm.d/shares.conf/10Shares index d2585bf..9c19d07 100644 --- a/root/etc/e-smith/templates/etc/php-fpm.d/shares.conf/10Shares +++ b/root/etc/e-smith/templates/etc/php-fpm.d/shares.conf/10Shares @@ -4,8 +4,10 @@ use esmith::AccountsDB; my $a = esmith::AccountsDB->open_ro || die "Couldn't open the accounts database"; foreach my $share ($a->get_all_by_prop(type => 'share')){ - my $pool_name = $share->key; next if (($share->prop('DynamicContent') || 'disabled') ne 'enabled'); + my $version = $share->prop('PHPVersion') || ''; + my $key = $share->key; + my $pool_name = 'php' . $version . '-' . $key; my $memory_limit = $share->prop('PHPMemoryLimit') || '128M'; my $max_execution_time = $share->prop('PHPMaxExecutionTime') || '30'; my $max_input_time = $share->prop('PHPMaxInputTime') || '60'; @@ -13,8 +15,8 @@ foreach my $share ($a->get_all_by_prop(type => 'share')){ my $post_max_size = $share->prop('PHPPostMaxSize') || '10M'; my $upload_max_filesize = $share->prop('PHPUploadMaxFilesize') || '10M'; my $file_upload = $share->prop('PHPFileUpload') || 'enabled'; - my $open_basedir = $share->prop('PHPBaseDir') || '/home/e-smith/files/shares/' . $pool_name . - ':/var/lib/php/' . $pool_name; + my $open_basedir = $share->prop('PHPBaseDir') || '/home/e-smith/files/shares/' . $key . + ':/var/lib/php/' . $key; my $disabled_functions = $share->prop('PHPDisabledFunctions') || 'system,show_source,' . 'symlink,exec,dl,shell_exec,' . 'passthru,phpinfo,' . @@ -23,9 +25,8 @@ foreach my $share ($a->get_all_by_prop(type => 'share')){ $file_upload = ($file_upload =~ m/^1|yes|on|enabled$/) ? 'on' : 'off'; $allow_url_fopen = ($allow_url_fopen =~ m/^1|yes|on|enabled$/) ? 'on' : 'off'; $disabled_functions = join(', ', split /[,;:]/, $disabled_functions); - my $version = $share->prop('PHPVersion') || 'default'; - $OUT .=<<"_EOF" if ($version eq $PHP_VERSION or ($PHP_VERSION eq '' && $version eq 'default')); + $OUT .=<<"_EOF" if ($version eq $PHP_VERSION); [$pool_name] user = www @@ -41,12 +42,12 @@ pm.min_spare_servers = 3 pm.max_spare_servers = 4 pm.max_requests = 5000 request_terminate_timeout = 30 -slowlog = /var/log/php/$pool_name/slow.log -php_admin_value[session.save_path] = /var/lib/php/$pool_name/session -php_admin_value[soap.wsdl_cache_dir] = /var/lib/php/$pool_name/wsdlcache -php_admin_value[opcache.file_cache] = /var/lib/php/$pool_name/opcache -php_admin_value[upload_tmp_dir] = /var/lib/php/$pool_name/tmp -php_admin_value[error_log] = /var/log/php/$pool_name/error.log +slowlog = /var/log/php/$key/slow.log +php_admin_value[session.save_path] = /var/lib/php/$key/session +php_admin_value[soap.wsdl_cache_dir] = /var/lib/php/$key/wsdlcache +php_admin_value[opcache.file_cache] = /var/lib/php/$key/opcache +php_admin_value[upload_tmp_dir] = /var/lib/php/$key/tmp +php_admin_value[error_log] = /var/log/php/$key/error.log php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName } php_admin_flag[display_errors] = off php_admin_flag[log_errors] = on