Compare commits
8 Commits
11_0_0-8_e
...
11_0_0-12_
Author | SHA1 | Date | |
---|---|---|---|
ab89dd9752 | |||
54b0dcf75f | |||
2cfa2a4a03 | |||
dd57e2950c | |||
2024288739 | |||
41e2be08aa | |||
![]() |
0ab495a51d | ||
![]() |
6c42919d34 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
||||
*.log
|
||||
*spec-20*
|
||||
*.tar.gz
|
||||
*.bak
|
||||
|
10
README.md
10
README.md
@@ -9,7 +9,15 @@ SMEServer Koozali developed git repo for smeserver-php smeserver
|
||||
<br />https://wiki.koozali.org/PHP_Software_Collections
|
||||
|
||||
## 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
|
||||
|
||||
|
@@ -26,7 +26,7 @@ $OUT = "/var/log/php/*/php*fpm.log {
|
||||
notifempty
|
||||
sharedscripts
|
||||
delaycompress
|
||||
su www www
|
||||
su root www
|
||||
create 600 www www
|
||||
postrotate
|
||||
/sbin/e-smith/service php-fpm reload >/dev/null 2>&1 || true
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
|
||||
use esmith::ConfigDB;
|
||||
|
||||
use esmith::php;
|
||||
my $pool_db = esmith::ConfigDB->open_ro('php') || esmith::ConfigDB->create('php');
|
||||
|
||||
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 $pool_name = 'php' . $version . '-' . $key;
|
||||
my $memory_limit = $pool->prop('MemoryLimit') || '128M';
|
||||
my $max_execution_time = $pool->prop('MaxExecutionTime') || '30';
|
||||
my $max_input_time = $pool->prop('MaxInputTime') || '60';
|
||||
my $allow_url_fopen = $pool->prop('AllowUrlFopen') || 'disabled';
|
||||
my $post_max_size = $pool->prop('PostMaxSize') || '10M';
|
||||
my $upload_max_filesize = $pool->prop('UploadMaxFilesize') || '10M';
|
||||
my $file_upload = $pool->prop('FileUpload') || 'enabled';
|
||||
my $open_basedir = $pool->prop('BaseDir') || undef;
|
||||
my $disabled_functions = $pool->prop('DisabledFunctions') || 'system,show_source,' .
|
||||
'symlink,exec,dl,shell_exec,' .
|
||||
'passthru,phpinfo,' .
|
||||
'escapeshellarg,escapeshellcmd';
|
||||
my $memory_limit = $pool->prop('MemoryLimit') || $defaultPHPproperties{'MemoryLimit'};
|
||||
my $max_execution_time = $pool->prop('MaxExecutionTime') || $defaultPHPproperties{'MaxExecutionTime'};
|
||||
my $max_input_time = $pool->prop('MaxInputTime') || $defaultPHPproperties{'MaxInputTime'};
|
||||
my $allow_url_fopen = $pool->prop('AllowUrlFopen') || $defaultPHPproperties{'AllowUrlFopen'};
|
||||
my $post_max_size = $pool->prop('PostMaxSize') || $defaultPHPproperties{'PostMaxSize'};
|
||||
my $upload_max_filesize = $pool->prop('UploadMaxFilesize') || $defaultPHPproperties{'UploadMaxFilesize'};
|
||||
my $file_upload = $pool->prop('FileUpload') || $defaultPHPproperties{'FileUpload'};
|
||||
my $open_basedir = $pool->prop('PHPBaseDir') || undef;
|
||||
my $disabled_functions = $pool->prop('DisabledFunctions') || $defaultPHPproperties{'DisabledFunctions'};
|
||||
my $user = $pool->prop('User') || 'www';
|
||||
my $group = $pool->prop('Group') || $user;
|
||||
my $max_children = $pool->prop('MaxChildren') || '15';
|
||||
my $display_errors = $pool->prop('DisplayErrors') || 'disabled';
|
||||
my $log_errors = $pool->prop('LogErrors') || 'disabled';
|
||||
my $autoprepend = $pool->prop('AutoPrependFile') || 'enabled';
|
||||
my $MailForceSender = $pool->prop('MailForceSender') || "php\@$DomainName";
|
||||
my $log_errors = $pool->prop('LogErrors') || 'enabled';
|
||||
my $autoprepend = $pool->prop('AutoPrependFile') || $defaultPHPproperties{'AutoPrependFile'};
|
||||
my $MailForceSender = $pool->prop('MailForceSender') || "$key\@$DomainName";
|
||||
|
||||
# Format vars
|
||||
my $autoprep = ( $autoprepend eq "disabled") ? "" : "/usr/share/php/auth_translation.php";
|
||||
|
@@ -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';
|
||||
$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));
|
||||
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);
|
||||
|
||||
@@ -48,11 +59,11 @@ listen.group = www
|
||||
listen.mode = 0660
|
||||
listen = /var/run/php-fpm/$pool_name.sock
|
||||
pm = dynamic
|
||||
pm.max_children = 15
|
||||
pm.start_servers = 3
|
||||
pm.min_spare_servers = 3
|
||||
pm.max_spare_servers = 4
|
||||
pm.max_requests = 1000
|
||||
pm.max_children = $max_children
|
||||
pm.start_servers = $start_servers
|
||||
pm.min_spare_servers = $min_spare_servers
|
||||
pm.max_spare_servers = $max_spare_servers
|
||||
pm.max_requests = $max_requests
|
||||
$limitExtensions
|
||||
slowlog = /var/log/php/$key/slow.log
|
||||
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_admin_value[auto_prepend_file] = $autoprep
|
||||
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
|
||||
}
|
||||
|
@@ -13,7 +13,10 @@ output_handler =
|
||||
zlib.output_compression = Off
|
||||
implicit_flush = Off
|
||||
unserialize_callback_func =
|
||||
serialize_precision = 17
|
||||
serialize_precision = {
|
||||
my $SerializePrecision = $phpcur->prop(SerializePrecision) || $php{SerializePrecision} || "-1";
|
||||
$OUT .= "$SerializePrecision";
|
||||
}
|
||||
disable_functions =
|
||||
disable_classes =
|
||||
safe_mode = Off
|
||||
|
@@ -20,11 +20,13 @@ session.entropy_length = 0
|
||||
session.entropy_file =
|
||||
session.cache_limiter = nocache
|
||||
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"
|
||||
session.use_strict_mode = Off
|
||||
session.sid_bits_per_character = 4
|
||||
session.sid_length = 32
|
||||
{return "" if $PHP_VERSION > 84;
|
||||
$OUT .= "session.sid_length = 32
|
||||
session.sid_bits_per_character = 4";
|
||||
}
|
||||
session.trans_sid_tags = "a=href,area=href,frame=src,form="
|
||||
{
|
||||
return "" if $PHP_VERSION eq "";
|
||||
|
@@ -4,8 +4,8 @@ use strict;
|
||||
use warnings;
|
||||
use esmith::ConfigDB;
|
||||
|
||||
our $PHPDEFAULT = 82;
|
||||
our $BASEPHP = 81;
|
||||
our $PHPDEFAULT = 84;
|
||||
our $BASEPHP = 83;
|
||||
|
||||
our @ISA = qw(Exporter);
|
||||
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'
|
||||
'php82-php-fpm'
|
||||
'php83-php-fpm'
|
||||
'php84-php-fpm'
|
||||
|
||||
this will return only available and enabled
|
||||
print "'$_'\n" for listPHPVersionFPM('enabled');
|
||||
@@ -92,6 +93,7 @@ print "'$_'\n" for listPHPVersionShort('all');
|
||||
'81'
|
||||
'82'
|
||||
'83'
|
||||
'84'
|
||||
|
||||
this will returnonly available and enabled
|
||||
print "'$_'\n" for listPHPVersionShort('enabled');
|
||||
@@ -119,6 +121,7 @@ print "$_ => $list{$_}\n" for (sort keys %list);
|
||||
81 => php81-php-fpm
|
||||
82 => php82-php-fpm
|
||||
83 => php83-php-fpm
|
||||
84 => php84-php-fpm
|
||||
|
||||
=cut
|
||||
sub listPHPVersionHash {
|
||||
@@ -148,6 +151,7 @@ print "$_ => $list{$_}\n" for (sort keys %list);
|
||||
81 => php81
|
||||
82 => php82
|
||||
83 => php83
|
||||
84 => php84
|
||||
|
||||
=cut
|
||||
sub listPHPVersionHashShort {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
%define version 11.0.0
|
||||
%define release 8
|
||||
%define release 12
|
||||
%define name smeserver-php
|
||||
%global debug_package %{nil}
|
||||
|
||||
@@ -15,7 +15,7 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
|
||||
BuildArch: x86_64
|
||||
BuildRequires: smeserver-devtools
|
||||
|
||||
Requires: smeserver-base >= 5.6.0
|
||||
Requires: smeserver-base >= 11.0.0
|
||||
Provides: e-smith-php = %{version}-%{release}
|
||||
Obsoletes: e-smith-php < %{version}
|
||||
Provides: smeserver-webapps-common
|
||||
@@ -185,6 +185,27 @@ Requires: php83-php-process
|
||||
Requires: php83-php-snmp
|
||||
Requires: php83-php, php83-php-enchant , php83-php-pdo php83-php-tidy , php83-php-mysqlnd php83-php-pecl-zip
|
||||
|
||||
# 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-pspel
|
||||
|
||||
|
||||
%description
|
||||
Manage PHP FPM pools, and switch between PHP versions easily
|
||||
|
||||
@@ -209,7 +230,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
|
||||
|
||||
%{__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
|
||||
%{__mkdir_p} root/var/log/php/php$phpver/
|
||||
%{__mkdir_p} root/var/lib/php/php$phpver/{session,tmp,opcache,wsdlcache}
|
||||
@@ -235,7 +256,7 @@ echo "WantedBy=sme-server.target" >> root/usr/lib/systemd/system/php$phpver-php-
|
||||
done
|
||||
|
||||
# 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
|
||||
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/
|
||||
@@ -262,7 +283,7 @@ done
|
||||
--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/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
|
||||
|
||||
|
||||
@@ -281,6 +302,22 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%preun
|
||||
|
||||
%changelog
|
||||
* 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]
|
||||
|
||||
* 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
|
||||
- remove tar.xz from git
|
||||
|
||||
|
Reference in New Issue
Block a user