12 Commits

Author SHA1 Message Date
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
05f981a831 * Mon Apr 15 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-8.sme
- remove tar.xz from git
2024-04-15 22:31:13 -04:00
11 changed files with 109 additions and 51 deletions

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@
*.log
*spec-20*
*.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
## 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

View File

@@ -1 +0,0 @@
sme10

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

@@ -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

View File

@@ -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";

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';
$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
}

View File

@@ -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

View File

@@ -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 "";

View File

@@ -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 {

View File

@@ -1,5 +1,5 @@
%define version 11.0.0
%define release 7
%define release 15
%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
@@ -28,6 +28,7 @@ Provides: smeserver-webapps-common
#Provides: php(language) = 8.3
Requires: tmpwatch
Requires: logrotate
Requires: smeserver-lib >= 11.0.0-10
# Stock PHP
Requires: php-cli
@@ -145,7 +146,7 @@ Requires: php81-php-intl
Requires: php81-php-pear
Requires: php81-php-process
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
Requires: php82-php-cli
@@ -164,7 +165,7 @@ Requires: php82-php-intl
Requires: php82-php-pear
Requires: php82-php-process
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
Requires: php83-php-cli
@@ -183,7 +184,28 @@ Requires: php83-php-intl
Requires: php83-php-pear
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
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
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
%{__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,8 +257,8 @@ echo "WantedBy=sme-server.target" >> root/usr/lib/systemd/system/php$phpver-php-
done
# php7*
for phpver in "72" "73" "74" "80" "81" "82" "83"; do
#cp ph70 metada
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/
#sed inplace
@@ -262,7 +284,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,7 +303,26 @@ rm -rf $RPM_BUILD_ROOT
%preun
%changelog
* Mon Apr 15 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-7.sme
* 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
- remove tar.xz from git
* Thu Apr 04 2024 Brian Read <brianr@koozali.org> 11.0.0-5.sme