12 Commits

Author SHA1 Message Date
4c21e412da * Wed Mar 05 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-16.sme
- change key type from service to configuration [SME: 11367]
  cleanup older php and php-fpm keys
- set base php to php84 [SME: 12952]
  fix missing bits for php74 support
2025-03-05 22:52:37 -05:00
d2789e5967 * Thu Feb 20 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-15.sme
- move template-begin-ini to smeserver-lib [SME: 12211]
2025-02-20 23:02:25 -05:00
0413bc1ac3 * Tue Dec 17 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-14.sme
- add php84 support [SME: 12805]
- set php84 as default and php83 as base php as defined by module
- set new value for  serialize_precision [SME: 12430]
2024-12-18 12:38:36 -05:00
a19d39a8a6 * Tue Dec 17 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-13.sme
- add php84 support [SME: 12805]
- set php84 as default and php83 as base php as defined by module
- set new value for  serialize_precision [SME: 12430]
2024-12-18 07:24:13 -05:00
ab89dd9752 * Tue Dec 17 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-12.sme
- add php84 support [SME: 12805]
- set php84 as default and php83 as base php as defined by module
- set new value for  serialize_precision [SME: 12430]
2024-12-17 14:35:23 -05:00
54b0dcf75f Add *.bak to .gitignore 2024-11-12 19:21:00 +00:00
2cfa2a4a03 * Tue Nov 12 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-11.sme
- fix error: stat of error.log failed: Permission denied  [SME: 12665]
2024-11-12 12:54:30 -05:00
dd57e2950c Update bugzilla links to allow choice and fix params to bugzilla 2024-10-27 15:15:09 +01:00
2024288739 Typo Edit bugzilla link in readme to show all outstanding bugs 2024-10-27 12:02:37 +00:00
41e2be08aa Edit bugzilla link in readme to show all outstanding bugs 2024-10-27 11:55:27 +00:00
John Crisp
0ab495a51d Thu Oct 24 2024 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-10.sme Fix spec typo 2024-10-24 11:21:48 +02:00
John Crisp
6c42919d34 Wed Oct 23 2024 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-9.sme [SME 12499 12651 12729] 2024-10-24 11:00:50 +02:00
37 changed files with 139 additions and 65 deletions

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@
*.log *.log
*spec-20* *spec-20*
*.tar.gz *.tar.gz
*.bak

View File

@@ -9,7 +9,15 @@ SMEServer Koozali developed git repo for smeserver-php smeserver
<br />https://wiki.koozali.org/PHP_Software_Collections <br />https://wiki.koozali.org/PHP_Software_Collections
## Bugzilla ## Bugzilla
Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-php&product=SME%20Server%2010.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED) Show list of outstanding bugs:
[All](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=NEEDINFO&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFIED&cf_package=smeserver-php&classification=SME+Server&list_id=105756&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Confirmed](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=CONFIRMED&cf_package=smeserver-php&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Unconfirmed](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=UNCONFIRMED&cf_package=smeserver-php&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Need info](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=NEEDINFO&cf_package=smeserver-php&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[In progress](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=IN_PROGRESS&cf_package=smeserver-php&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Resolved](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=RESOLVED&cf_package=smeserver-php&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Verified](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=VERIFIED&cf_package=smeserver-php&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
## Description ## Description

View File

@@ -1 +0,0 @@
sme10

View File

@@ -12,6 +12,7 @@ foreach $file (qw(/etc/php.ini
/etc/opt/remi/php81/php.ini /etc/opt/remi/php81/php.ini
/etc/opt/remi/php82/php.ini /etc/opt/remi/php82/php.ini
/etc/opt/remi/php83/php.ini /etc/opt/remi/php83/php.ini
/etc/opt/remi/php84/php.ini
)){ )){
templates2events($file, qw( templates2events($file, qw(
console-save console-save
@@ -41,7 +42,7 @@ for $event (qw(smeserver-php-update webapps-update)){
templates2events($file, $event); templates2events($file, $event);
} }
foreach $ver (qw( 72 73 74 80 81 82 83)){ foreach $ver (qw( 72 73 74 80 81 82 83 84)){
foreach $service ( "php$ver-php-fpm" ){ foreach $service ( "php$ver-php-fpm" ){
foreach $event (qw(webapps-update ibay-create ibay-delete ibay-modify ibay-modify-files ibay-modify-servers )){ foreach $event (qw(webapps-update ibay-create ibay-delete ibay-modify ibay-modify-files ibay-modify-servers )){
safe_symlink("reload-or-restart", "root/etc/e-smith/events/$event/services2adjust/$service"); safe_symlink("reload-or-restart", "root/etc/e-smith/events/$event/services2adjust/$service");
@@ -70,12 +71,13 @@ foreach $file (qw( /etc/sysconfig/php-fpm
/etc/logrotate.d/php81-php-fpm /etc/logrotate.d/php81-php-fpm
/etc/logrotate.d/php82-php-fpm /etc/logrotate.d/php82-php-fpm
/etc/logrotate.d/php83-php-fpm /etc/logrotate.d/php83-php-fpm
/etc/logrotate.d/php84-php-fpm
)){ )){
templates2events($file, qw(webapps-update bootstrap-console-save smeserver-php-update)); templates2events($file, qw(webapps-update bootstrap-console-save smeserver-php-update));
} }
#php7* #php7*
foreach $ver (qw( 72 73 74 80 81 82 83)){ foreach $ver (qw( 72 73 74 80 81 82 83 84)){
foreach $file ( "/etc/opt/remi/php$ver/php-fpm.conf", foreach $file ( "/etc/opt/remi/php$ver/php-fpm.conf",
"/etc/opt/remi/php$ver/php-fpm.d/www.conf", "/etc/opt/remi/php$ver/php-fpm.d/www.conf",
"/etc/opt/remi/php$ver/php-fpm.d/ibays.conf", "/etc/opt/remi/php$ver/php-fpm.d/ibays.conf",

View File

@@ -1 +1 @@
service configuraiton

View File

@@ -1 +0,0 @@
configuration

View File

@@ -1 +0,0 @@
configuration

View File

@@ -1 +0,0 @@
configuration

View File

@@ -0,0 +1,10 @@
{
foreach my $sservice (qw(php)) {
$DB->set_prop($sservice, "type", "configuration") if ${$sservice}{type} eq "service";
}
# delete old php entries
foreach my $sservice (qw(php55 php55-php-fpm php56 php56-php-fpm php70 php70-php-fpm php71 php71-php-fpm)) {
my $popd = $DB->get($sservice) or next;
$popd->delete;
}
}

View File

@@ -1,11 +0,0 @@
;------------------------------------------------------------
; !!DO NOT MODIFY THIS FILE!!
;
; Manual changes will be lost when this file is regenerated.
;
; Please read the developer's guide, which is available
; at http://www.contribs.org/development/
;
; Copyright (C) 1999-2006 Mitel Networks Corporation
;------------------------------------------------------------

View File

@@ -1 +1,2 @@
TEMPLATE_PATH="/etc/php.ini"
MORE_DATA={ PHP_VERSION => 80, INCLUDE_PATH => ".:/opt/remi/php80/root/usr/share/pear:/opt/remi/php80/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php80/root/usr/lib64/php/modules" } MORE_DATA={ PHP_VERSION => 80, INCLUDE_PATH => ".:/opt/remi/php80/root/usr/share/pear:/opt/remi/php80/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php80/root/usr/lib64/php/modules" }

View File

@@ -1 +1,2 @@
TEMPLATE_PATH="/etc/php.ini"
MORE_DATA={ PHP_VERSION => 81, INCLUDE_PATH => ".:/opt/remi/php81/root/usr/share/pear:/opt/remi/php81/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php81/root/usr/lib64/php/modules" } MORE_DATA={ PHP_VERSION => 81, INCLUDE_PATH => ".:/opt/remi/php81/root/usr/share/pear:/opt/remi/php81/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php81/root/usr/lib64/php/modules" }

View File

@@ -1 +1,2 @@
TEMPLATE_PATH="/etc/php.ini"
MORE_DATA={ PHP_VERSION => 82, INCLUDE_PATH => ".:/opt/remi/php82/root/usr/share/pear:/opt/remi/php82/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php82/root/usr/lib64/php/modules" } MORE_DATA={ PHP_VERSION => 82, INCLUDE_PATH => ".:/opt/remi/php82/root/usr/share/pear:/opt/remi/php82/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php82/root/usr/lib64/php/modules" }

View File

@@ -1 +1,2 @@
TEMPLATE_PATH="/etc/php.ini"
MORE_DATA={ PHP_VERSION => 83, INCLUDE_PATH => ".:/opt/remi/php83/root/usr/share/pear:/opt/remi/php83/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php83/root/usr/lib64/php/modules" } MORE_DATA={ PHP_VERSION => 83, INCLUDE_PATH => ".:/opt/remi/php83/root/usr/share/pear:/opt/remi/php83/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php83/root/usr/lib64/php/modules" }

View File

@@ -0,0 +1,2 @@
TEMPLATE_PATH="/etc/php.ini"
MORE_DATA={ PHP_VERSION => 84, INCLUDE_PATH => ".:/opt/remi/php84/root/usr/share/pear:/opt/remi/php84/root/usr/share/php:/usr/share/php:/usr/share/pear", EXTENSION_DIR => "/opt/remi/php84/root/usr/lib64/php/modules" }

View File

@@ -1,5 +1,5 @@
for VER in php php72 php73 php74 php80 php81 php82 php83; do for VER in php php72 php73 php74 php80 php81 php82 php83 php84; do
/usr/sbin/tmpwatch -umc --nodirs -q 7d /var/lib/php/$VER/tmp /usr/sbin/tmpwatch -umc --nodirs -q 7d /var/lib/php/$VER/tmp
/usr/sbin/tmpwatch -umc --nodirs -q 7d /var/lib/php/$VER/opcache /usr/sbin/tmpwatch -umc --nodirs -q 7d /var/lib/php/$VER/opcache
/usr/sbin/tmpwatch -umc --nodirs -q 7d /var/lib/php/$VER/wsdlcache /usr/sbin/tmpwatch -umc --nodirs -q 7d /var/lib/php/$VER/wsdlcache

View File

@@ -18,6 +18,7 @@ $OUT = "/var/log/php/*/php*fpm.log {
/sbin/e-smith/service php81-php-fpm reload >/dev/null 2>&1 || true /sbin/e-smith/service php81-php-fpm reload >/dev/null 2>&1 || true
/sbin/e-smith/service php82-php-fpm reload >/dev/null 2>&1 || true /sbin/e-smith/service php82-php-fpm reload >/dev/null 2>&1 || true
/sbin/e-smith/service php83-php-fpm reload >/dev/null 2>&1 || true /sbin/e-smith/service php83-php-fpm reload >/dev/null 2>&1 || true
/sbin/e-smith/service php84-php-fpm reload >/dev/null 2>&1 || true
endscript endscript
} }
@@ -26,7 +27,7 @@ $OUT = "/var/log/php/*/php*fpm.log {
notifempty notifempty
sharedscripts sharedscripts
delaycompress delaycompress
su www www su root www
create 600 www www create 600 www www
postrotate postrotate
/sbin/e-smith/service php-fpm reload >/dev/null 2>&1 || true /sbin/e-smith/service php-fpm reload >/dev/null 2>&1 || true
@@ -37,6 +38,7 @@ $OUT = "/var/log/php/*/php*fpm.log {
/sbin/e-smith/service php81-php-fpm reload >/dev/null 2>&1 || true /sbin/e-smith/service php81-php-fpm reload >/dev/null 2>&1 || true
/sbin/e-smith/service php82-php-fpm reload >/dev/null 2>&1 || true /sbin/e-smith/service php82-php-fpm reload >/dev/null 2>&1 || true
/sbin/e-smith/service php83-php-fpm reload >/dev/null 2>&1 || true /sbin/e-smith/service php83-php-fpm reload >/dev/null 2>&1 || true
/sbin/e-smith/service php84-php-fpm reload >/dev/null 2>&1 || true
endscript endscript
} }
"; ";

View File

@@ -1,7 +1,7 @@
{ {
use esmith::ConfigDB; use esmith::ConfigDB;
use esmith::php;
my $pool_db = esmith::ConfigDB->open_ro('php') || esmith::ConfigDB->create('php'); my $pool_db = esmith::ConfigDB->open_ro('php') || esmith::ConfigDB->create('php');
foreach my $pool ($pool_db->get_all_by_prop(type => 'pool')){ foreach my $pool ($pool_db->get_all_by_prop(type => 'pool')){
@@ -11,25 +11,22 @@ foreach my $pool ($pool_db->get_all_by_prop(type => 'pool')){
my $key = $pool->key; my $key = $pool->key;
my $pool_name = 'php' . $version . '-' . $key; my $pool_name = 'php' . $version . '-' . $key;
my $memory_limit = $pool->prop('MemoryLimit') || '128M'; my $memory_limit = $pool->prop('MemoryLimit') || $defaultPHPproperties{'MemoryLimit'};
my $max_execution_time = $pool->prop('MaxExecutionTime') || '30'; my $max_execution_time = $pool->prop('MaxExecutionTime') || $defaultPHPproperties{'MaxExecutionTime'};
my $max_input_time = $pool->prop('MaxInputTime') || '60'; my $max_input_time = $pool->prop('MaxInputTime') || $defaultPHPproperties{'MaxInputTime'};
my $allow_url_fopen = $pool->prop('AllowUrlFopen') || 'disabled'; my $allow_url_fopen = $pool->prop('AllowUrlFopen') || $defaultPHPproperties{'AllowUrlFopen'};
my $post_max_size = $pool->prop('PostMaxSize') || '10M'; my $post_max_size = $pool->prop('PostMaxSize') || $defaultPHPproperties{'PostMaxSize'};
my $upload_max_filesize = $pool->prop('UploadMaxFilesize') || '10M'; my $upload_max_filesize = $pool->prop('UploadMaxFilesize') || $defaultPHPproperties{'UploadMaxFilesize'};
my $file_upload = $pool->prop('FileUpload') || 'enabled'; my $file_upload = $pool->prop('FileUpload') || $defaultPHPproperties{'FileUpload'};
my $open_basedir = $pool->prop('BaseDir') || undef; my $open_basedir = $pool->prop('PHPBaseDir') || undef;
my $disabled_functions = $pool->prop('DisabledFunctions') || 'system,show_source,' . my $disabled_functions = $pool->prop('DisabledFunctions') || $defaultPHPproperties{'DisabledFunctions'};
'symlink,exec,dl,shell_exec,' .
'passthru,phpinfo,' .
'escapeshellarg,escapeshellcmd';
my $user = $pool->prop('User') || 'www'; my $user = $pool->prop('User') || 'www';
my $group = $pool->prop('Group') || $user; my $group = $pool->prop('Group') || $user;
my $max_children = $pool->prop('MaxChildren') || '15'; my $max_children = $pool->prop('MaxChildren') || '15';
my $display_errors = $pool->prop('DisplayErrors') || 'disabled'; my $display_errors = $pool->prop('DisplayErrors') || 'disabled';
my $log_errors = $pool->prop('LogErrors') || 'disabled'; my $log_errors = $pool->prop('LogErrors') || 'enabled';
my $autoprepend = $pool->prop('AutoPrependFile') || 'enabled'; my $autoprepend = $pool->prop('AutoPrependFile') || $defaultPHPproperties{'AutoPrependFile'};
my $MailForceSender = $pool->prop('MailForceSender') || "php\@$DomainName"; my $MailForceSender = $pool->prop('MailForceSender') || "$key\@$DomainName";
# Format vars # Format vars
my $autoprep = ( $autoprepend eq "disabled") ? "" : "/usr/share/php/auth_translation.php"; my $autoprep = ( $autoprepend eq "disabled") ? "" : "/usr/share/php/auth_translation.php";

View File

@@ -37,6 +37,17 @@ foreach my $ibay ($a->get_all_by_prop(type => 'ibay')){
$display_errors = ($display_errors =~ m/^1|yes|on|enabled$/) ? 'on' : 'off'; $display_errors = ($display_errors =~ m/^1|yes|on|enabled$/) ? 'on' : 'off';
$error_reporting = ($error_reporting eq 'E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT') ? '; default error_reporting' : "php_value[error_reporting] = $error_reporting"; $error_reporting = ($error_reporting eq 'E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT') ? '; default error_reporting' : "php_value[error_reporting] = $error_reporting";
$open_basedir = join(':', split(/[,;:]/, $open_basedir . $autoprepath)); $open_basedir = join(':', split(/[,;:]/, $open_basedir . $autoprepath));
my $max_input_vars = (defined $ibay->prop('MaxInputVars'))? $ibay->prop('MaxInputVars') : $defaultPHPproperties{'MaxInputVars'} || '1000';
my $short_open_tag = (defined $ibay->prop('ShortOpenTag'))? $ibay->prop('ShortOpenTag') : $defaultPHPproperties{'ShortOpenTag'} || 'On';
my $sessionProb = (defined $ibay->prop('SessionProbability'))? $ibay->prop('SessionProbability') : $defaultPHPproperties{'SessionProbability'} || '1';
my $max_children = (defined $ibay->prop('PHPmaxChildren'))? $ibay->prop('PHPmaxChildren') : $defaultPHPproperties{'PHPmaxChildren'} || 20;
my $min_spare_servers = (defined $ibay->prop('PHPminServers'))? $ibay->prop('PHPminServers') : $defaultPHPproperties{'PHPminServers'} || 4;
my $start_servers = (defined $ibay->prop('PHPstartServers'))? $ibay->prop('PHPstartServers') : $defaultPHPproperties{'PHPstartServers'} || 6;
my $max_spare_servers = (defined $ibay->prop('PHPmaxServers'))? $ibay->prop('PHPmaxServers') : $defaultPHPproperties{'PHPmaxServers'} || 8;
my $max_requests = (defined $ibay->prop('PHPmaxRequests'))? $ibay->prop('PHPmaxRequests') : $defaultPHPproperties{'PHPmaxRequests'} || 1000;
$min_spare_servers = ( $min_spare_servers > $max_spare_servers ) ? sprintf("%.0f", $max_spare_servers/2) : $min_spare_servers;
$start_servers = ( $start_servers > $max_spare_servers ) ? sprintf("%.0f", $max_spare_servers/2 + $min_spare_servers/2 ) : $start_servers;
$OUT .=<<"_EOF" if ($version eq $PHP_VERSION); $OUT .=<<"_EOF" if ($version eq $PHP_VERSION);
@@ -48,11 +59,11 @@ listen.group = www
listen.mode = 0660 listen.mode = 0660
listen = /var/run/php-fpm/$pool_name.sock listen = /var/run/php-fpm/$pool_name.sock
pm = dynamic pm = dynamic
pm.max_children = 15 pm.max_children = $max_children
pm.start_servers = 3 pm.start_servers = $start_servers
pm.min_spare_servers = 3 pm.min_spare_servers = $min_spare_servers
pm.max_spare_servers = 4 pm.max_spare_servers = $max_spare_servers
pm.max_requests = 1000 pm.max_requests = $max_requests
$limitExtensions $limitExtensions
slowlog = /var/log/php/$key/slow.log slowlog = /var/log/php/$key/slow.log
php_admin_value[session.save_path] = /var/lib/php/$key/session php_admin_value[session.save_path] = /var/lib/php/$key/session
@@ -77,6 +88,9 @@ php_admin_flag[allow_url_include] = off
php_value[session.save_handler] = files php_value[session.save_handler] = files
php_admin_value[auto_prepend_file] = $autoprep php_admin_value[auto_prepend_file] = $autoprep
php_admin_value[open_basedir] = $open_basedir php_admin_value[open_basedir] = $open_basedir
php_admin_value[max_input_vars] = $max_input_vars
php_admin_value[short_open_tag] = $short_open_tag
php_admin_value[session.gc_probability] = $sessionProb
_EOF _EOF
} }

View File

@@ -13,7 +13,10 @@ output_handler =
zlib.output_compression = Off zlib.output_compression = Off
implicit_flush = Off implicit_flush = Off
unserialize_callback_func = unserialize_callback_func =
serialize_precision = 17 serialize_precision = {
my $SerializePrecision = $phpcur->prop(SerializePrecision) || $php{SerializePrecision} || "-1";
$OUT .= "$SerializePrecision";
}
disable_functions = disable_functions =
disable_classes = disable_classes =
safe_mode = Off safe_mode = Off

View File

@@ -20,11 +20,13 @@ session.entropy_length = 0
session.entropy_file = session.entropy_file =
session.cache_limiter = nocache session.cache_limiter = nocache
session.cache_expire = 180 session.cache_expire = 180
session.use_trans_sid = On session.use_trans_sid = {$phpcur->prop(SessionUseTransSid) || $php{SessionUseTransSid} || "On"}
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
session.use_strict_mode = Off session.use_strict_mode = Off
session.sid_bits_per_character = 4 {return "" if $PHP_VERSION > 84;
session.sid_length = 32 $OUT .= "session.sid_length = 32
session.sid_bits_per_character = 4";
}
session.trans_sid_tags = "a=href,area=href,frame=src,form=" session.trans_sid_tags = "a=href,area=href,frame=src,form="
{ {
return "" if $PHP_VERSION eq ""; return "" if $PHP_VERSION eq "";

View File

@@ -18,3 +18,5 @@
& stop & stop
:programname, startswith, "php83-fpm" /var/log/php/php83/php83-fpm.log :programname, startswith, "php83-fpm" /var/log/php/php83/php83-fpm.log
& stop & stop
:programname, startswith, "php84-fpm" /var/log/php/php84/php84-fpm.log
& stop

View File

@@ -4,8 +4,8 @@ use strict;
use warnings; use warnings;
use esmith::ConfigDB; use esmith::ConfigDB;
our $PHPDEFAULT = 82; our $PHPDEFAULT = 84;
our $BASEPHP = 81; our $BASEPHP = 84;
our @ISA = qw(Exporter); our @ISA = qw(Exporter);
our @EXPORT = qw( listPHPVersionFPM listPHPVersionShort listPHPVersionHash listPHPVersionHashShort PHPdefault PHPbase VersionToUse PhpFpmVersionToUse $defaultdisabledfunc %defaultPHPproperties); our @EXPORT = qw( listPHPVersionFPM listPHPVersionShort listPHPVersionHash listPHPVersionHashShort PHPdefault PHPbase VersionToUse PhpFpmVersionToUse $defaultdisabledfunc %defaultPHPproperties);
@@ -59,6 +59,7 @@ print "'$_'\n" for listPHPVersionFPM('all');
'php81-php-fpm' 'php81-php-fpm'
'php82-php-fpm' 'php82-php-fpm'
'php83-php-fpm' 'php83-php-fpm'
'php84-php-fpm'
this will return only available and enabled this will return only available and enabled
print "'$_'\n" for listPHPVersionFPM('enabled'); print "'$_'\n" for listPHPVersionFPM('enabled');
@@ -92,6 +93,7 @@ print "'$_'\n" for listPHPVersionShort('all');
'81' '81'
'82' '82'
'83' '83'
'84'
this will returnonly available and enabled this will returnonly available and enabled
print "'$_'\n" for listPHPVersionShort('enabled'); print "'$_'\n" for listPHPVersionShort('enabled');
@@ -119,6 +121,7 @@ print "$_ => $list{$_}\n" for (sort keys %list);
81 => php81-php-fpm 81 => php81-php-fpm
82 => php82-php-fpm 82 => php82-php-fpm
83 => php83-php-fpm 83 => php83-php-fpm
84 => php84-php-fpm
=cut =cut
sub listPHPVersionHash { sub listPHPVersionHash {
@@ -148,6 +151,7 @@ print "$_ => $list{$_}\n" for (sort keys %list);
81 => php81 81 => php81
82 => php82 82 => php82
83 => php83 83 => php83
84 => php84
=cut =cut
sub listPHPVersionHashShort { sub listPHPVersionHashShort {

View File

@@ -1,5 +1,5 @@
%define version 11.0.0 %define version 11.0.0
%define release 8 %define release 16
%define name smeserver-php %define name smeserver-php
%global debug_package %{nil} %global debug_package %{nil}
@@ -15,7 +15,7 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
BuildArch: x86_64 BuildArch: x86_64
BuildRequires: smeserver-devtools BuildRequires: smeserver-devtools
Requires: smeserver-base >= 5.6.0 Requires: smeserver-base >= 11.0.0
Provides: e-smith-php = %{version}-%{release} Provides: e-smith-php = %{version}-%{release}
Obsoletes: e-smith-php < %{version} Obsoletes: e-smith-php < %{version}
Provides: smeserver-webapps-common Provides: smeserver-webapps-common
@@ -28,6 +28,7 @@ Provides: smeserver-webapps-common
#Provides: php(language) = 8.3 #Provides: php(language) = 8.3
Requires: tmpwatch Requires: tmpwatch
Requires: logrotate Requires: logrotate
Requires: smeserver-lib >= 11.0.0-10
# Stock PHP # Stock PHP
Requires: php-cli Requires: php-cli
@@ -145,7 +146,7 @@ Requires: php81-php-intl
Requires: php81-php-pear Requires: php81-php-pear
Requires: php81-php-process Requires: php81-php-process
Requires: php81-php-snmp Requires: php81-php-snmp
Requires: php81-php, php81-php-enchant , php81-php-pdo php81-php-tidy , php81-php-mysqlnd php81-php-pecl-zip Requires: php81-php, php81-php-enchant , php81-php-pdo php81-php-tidy , php81-php-mysqlnd php81-php-pecl-zip, php81-php-pspell
# PHP 8.2 # PHP 8.2
Requires: php82-php-cli Requires: php82-php-cli
@@ -164,7 +165,7 @@ Requires: php82-php-intl
Requires: php82-php-pear Requires: php82-php-pear
Requires: php82-php-process Requires: php82-php-process
Requires: php82-php-snmp Requires: php82-php-snmp
Requires: php82-php, php82-php-enchant , php82-php-pdo php82-php-tidy , php82-php-mysqlnd php82-php-pecl-zip Requires: php82-php, php82-php-enchant , php82-php-pdo php82-php-tidy , php82-php-mysqlnd php82-php-pecl-zip, php82-php-pspell
# PHP 8.3 # PHP 8.3
Requires: php83-php-cli Requires: php83-php-cli
@@ -183,7 +184,28 @@ Requires: php83-php-intl
Requires: php83-php-pear Requires: php83-php-pear
Requires: php83-php-process Requires: php83-php-process
Requires: php83-php-snmp Requires: php83-php-snmp
Requires: php83-php, php83-php-enchant , php83-php-pdo php83-php-tidy , php83-php-mysqlnd php83-php-pecl-zip Requires: php83-php, php83-php-enchant , php83-php-pdo php83-php-tidy , php83-php-mysqlnd php83-php-pecl-zip, php83-php-pspell
# PHP 8.4
Requires: php84-php-cli
Requires: php84-php-ldap
Requires: php84-php-pecl-imap
Requires: php84-php-gd
Requires: php84-php-xml
Requires: php84-php-pecl-xmlrpc
Requires: php84-php-soap
Requires: php84-php-opcache
Requires: php84-php-fpm
Requires: php84-php-mbstring
Requires: php84-php-json
Requires: php84-php-bcmath
Requires: php84-php-intl
Requires: php84-php-pear
Requires: php84-php-process
Requires: php84-php-snmp
Requires: php84 php84-php, php84-php-enchant , php84-php-pdo php84-php-tidy , php84-php-mysqlnd php84-php-pecl-zip
Requires: php84-php-maxminddb, php84-php-pecl-pspell
%description %description
Manage PHP FPM pools, and switch between PHP versions easily Manage PHP FPM pools, and switch between PHP versions easily
@@ -209,7 +231,7 @@ echo "[Install]" > root/usr/lib/systemd/system/php-fpm.service.d/51koozali.conf
echo "WantedBy=sme-server.target" >> root/usr/lib/systemd/system/php-fpm.service.d/51koozali.conf echo "WantedBy=sme-server.target" >> root/usr/lib/systemd/system/php-fpm.service.d/51koozali.conf
%{__mkdir_p} root/etc/e-smith/templates.metadata/etc/logrotate.d/ %{__mkdir_p} root/etc/e-smith/templates.metadata/etc/logrotate.d/
for phpver in "72" "73" "74" "80" "81" "82" "83"; do for phpver in "72" "73" "74" "80" "81" "82" "83" "84"; do
#needed folder #needed folder
%{__mkdir_p} root/var/log/php/php$phpver/ %{__mkdir_p} root/var/log/php/php$phpver/
%{__mkdir_p} root/var/lib/php/php$phpver/{session,tmp,opcache,wsdlcache} %{__mkdir_p} root/var/lib/php/php$phpver/{session,tmp,opcache,wsdlcache}
@@ -235,7 +257,7 @@ echo "WantedBy=sme-server.target" >> root/usr/lib/systemd/system/php$phpver-php-
done done
# php7* # php7*
for phpver in "73" "74" "80" "81" "82" "83"; do for phpver in "73" "74" "80" "81" "82" "83" "84"; do
#cp ph72 metada #cp ph72 metada
mkdir -p root/etc/e-smith/templates.metadata/etc/opt/remi/php$phpver/ mkdir -p root/etc/e-smith/templates.metadata/etc/opt/remi/php$phpver/
cp -a root/etc/e-smith/templates.metadata/etc/opt/remi/php72/* root/etc/e-smith/templates.metadata/etc/opt/remi/php$phpver/ cp -a root/etc/e-smith/templates.metadata/etc/opt/remi/php72/* root/etc/e-smith/templates.metadata/etc/opt/remi/php$phpver/
@@ -262,7 +284,7 @@ done
--dir /var/lib/php/php/tmp 'attr(0770,root,www)' \ --dir /var/lib/php/php/tmp 'attr(0770,root,www)' \
--dir /var/lib/php/php/opcache 'attr(0770,root,www)' \ --dir /var/lib/php/php/opcache 'attr(0770,root,www)' \
--dir /var/lib/php/php/wsdlcache 'attr(0770,root,www)' \ --dir /var/lib/php/php/wsdlcache 'attr(0770,root,www)' \
`for phpver in "72" "73" "74" "80" "81" "82" "83"; do echo -n "--dir /var/log/php/php$phpver attr(0770,root,www) --dir /var/lib/php/php$phpver/session attr(0770,root,www) --dir /var/lib/php/php$phpver/tmp attr(0770,root,www) --dir /var/lib/php/php$phpver/opcache attr(0770,root,www) --dir /var/lib/php/php$phpver/wsdlcache attr(0770,root,www) ";done ` \ `for phpver in "72" "73" "74" "80" "81" "82" "83" "84"; do echo -n "--dir /var/log/php/php$phpver attr(0770,root,www) --dir /var/lib/php/php$phpver/session attr(0770,root,www) --dir /var/lib/php/php$phpver/tmp attr(0770,root,www) --dir /var/lib/php/php$phpver/opcache attr(0770,root,www) --dir /var/lib/php/php$phpver/wsdlcache attr(0770,root,www) ";done ` \
> %{name}-%{version}-filelist > %{name}-%{version}-filelist
@@ -281,6 +303,31 @@ rm -rf $RPM_BUILD_ROOT
%preun %preun
%changelog %changelog
* Wed Mar 05 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-16.sme
- change key type from service to configuration [SME: 11367]
cleanup older php and php-fpm keys
- set base php to php84 [SME: 12952]
fix missing bits for php74 support
* Thu Feb 20 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-15.sme
- move template-begin-ini to smeserver-lib [SME: 12211]
* Tue Dec 17 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-14.sme
- add php84 support [SME: 12805]
- set php84 as default and php83 as base php as defined by module
- set new value for serialize_precision [SME: 12430]
* Tue Nov 12 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-11.sme
- fix error: stat of error.log failed: Permission denied [SME: 12665]
* Thu Oct 24 2024 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-10.sme
- fix spec file typo
* Wed Oct 23 2024 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-9.sme
- add pm max_children, start_servers, min/max_spare_servers, max_requests [SME: 12729]
- add custom session.use trans_id [SME: 12651]
- add max_input_vars short_open_tag session.gc_probability [SME: 12499]
* Mon Apr 15 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-8.sme * Mon Apr 15 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-8.sme
- remove tar.xz from git - remove tar.xz from git