Skip to content

Commit 6719fb8

Browse files
author
Till Brehm
committed
Merge branch 'develop' into '6445-cleanup-cron'
# Conflicts: # install/sql/incremental/upd_dev_collection.sql
2 parents 06b0344 + 8526b58 commit 6719fb8

File tree

131 files changed

+2338
-1962
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

131 files changed

+2338
-1962
lines changed

.editorconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
; top-most EditorConfig file
2+
root = true
3+
4+
; Unix-style newlines
5+
[*]
6+
charset = utf-8
7+
end_of_line = LF
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true
10+
indent_style = tab
11+
12+
[*.{htm,html}]
13+
indent_style = space
14+
indent_size = 4

install/install.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,9 @@
252252
include_once 'lib/mysql.lib.php';
253253
$inst->db = new db();
254254

255+
//* Check MySQL version
256+
$inst->check_mysql_version();
257+
255258
//** Begin with standard or expert installation
256259

257260
$conf['services']['mail'] = false;

install/lib/installer_base.lib.php

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,36 @@ public function check_prerequisites() {
262262
if($msg != '') die($msg);
263263
}
264264

265+
//** Check MySQL version
266+
public function check_mysql_version() {
267+
global $conf;
268+
269+
$min_mariadb_version = '10.0.5';
270+
// Set MySQL version to 8.0.4 after CentOS 7 support ended to allow preg_* functions in SQL queries
271+
$min_mysql_version = '5.5';
272+
273+
$rec = $this->db->queryOneRecord('SELECT VERSION() as mysql_version');
274+
if(is_array($rec)) {
275+
$version = $rec['mysql_version'];
276+
} else {
277+
die("Unable to get MySQL version\n");
278+
}
279+
280+
if(strpos($version,'MariaDB')) {
281+
// We have MariaDB
282+
$parts = explode('-',$version);
283+
$version = $parts[0];
284+
swriteln("MariaDB version ".$version);
285+
if(version_compare($version, $min_mariadb_version, '<')) die("Minimum required MariaDB version is ".$min_mariadb_version."\n");
286+
} else {
287+
// we have MySQL
288+
swriteln("MySQL version ".$version);
289+
if(version_compare($version, $min_mysql_version, '<')) die("Minimum required MySQL version is ".$min_mysql_version."\n");
290+
}
291+
292+
293+
}
294+
265295
public function force_configure_app($service, $enable_force=true) {
266296
$force = false;
267297
if(AUTOINSTALL == true) return false;
@@ -812,6 +842,14 @@ public function grant_master_database_rights($verbose = false) {
812842
$this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
813843
}
814844

845+
$query = "GRANT SELECT, INSERT ON ?? TO ?@?";
846+
if ($verbose){
847+
echo $query ."\n";
848+
}
849+
if(!$this->dbmaster->query($query, $value['db'] . '.server_php', $value['user'], $host)) {
850+
$this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
851+
}
852+
815853
}
816854

817855
}
@@ -1136,7 +1174,7 @@ public function configure_postfix($options = '') {
11361174

11371175
//* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removal after an update
11381176
$rbl_list = '';
1139-
if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') {
1177+
if(@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') {
11401178
$rbl_hosts = explode(",", str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list']));
11411179
foreach ($rbl_hosts as $key => $value) {
11421180
$rbl_list .= ", reject_rbl_client ". $value;
@@ -1146,13 +1184,13 @@ public function configure_postfix($options = '') {
11461184

11471185
//* If Postgrey is installed, configure it
11481186
$greylisting = '';
1149-
if($conf['postgrey']['installed'] == true) {
1187+
if(isset($conf['postgrey']['installed']) && ($conf['postgrey']['installed'] == true)) {
11501188
$greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf';
11511189
}
11521190

11531191
$reject_sender_login_mismatch = '';
11541192
$reject_authenticated_sender_login_mismatch = '';
1155-
if (isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
1193+
if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
11561194
$reject_sender_login_mismatch = ',reject_sender_login_mismatch,';
11571195
$reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, ';
11581196
}
@@ -1162,11 +1200,11 @@ public function configure_postfix($options = '') {
11621200
$stress_adaptive = (isset($server_ini_array['mail']['stress_adaptive']) && ($server_ini_array['mail']['stress_adaptive'] == 'y')) ? '' : $stress_adaptive_placeholder;
11631201

11641202
$reject_unknown_client_hostname='';
1165-
if (isset($server_ini_array['mail']['reject_unknown']) && ($server_ini_array['mail']['reject_unknown'] == 'client' || $server_ini_array['mail']['reject_unknown'] == 'client_helo')) {
1203+
if(isset($server_ini_array['mail']['reject_unknown']) && ($server_ini_array['mail']['reject_unknown'] == 'client' || $server_ini_array['mail']['reject_unknown'] == 'client_helo')) {
11661204
$reject_unknown_client_hostname=',reject_unknown_client_hostname';
11671205
}
11681206
$reject_unknown_helo_hostname='';
1169-
if ((!isset($server_ini_array['mail']['reject_unknown'])) || $server_ini_array['mail']['reject_unknown'] == 'helo' || $server_ini_array['mail']['reject_unknown'] == 'client_helo') {
1207+
if((!isset($server_ini_array['mail']['reject_unknown'])) || $server_ini_array['mail']['reject_unknown'] == 'helo' || $server_ini_array['mail']['reject_unknown'] == 'client_helo') {
11701208
$reject_unknown_helo_hostname=',reject_unknown_helo_hostname';
11711209
}
11721210

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
ALTER TABLE `mail_user` CHANGE `quota` `quota` BIGINT(20) NOT NULL DEFAULT '0';
2-
-- 5918 add imap_prefix column to mail_user table
2+
ALTER TABLE `server_php` ADD `sortprio` INT(20) NOT NULL DEFAULT '100' AFTER `active`;
33
ALTER TABLE `mail_user` ADD COLUMN `imap_prefix` varchar(255) NULL default NULL AFTER `backup_copies`;
44
-- #6456 comodoca.com needs to become sectigo.com
55
UPDATE `dns_ssl_ca` SET `ca_issue` = 'sectigo.com' WHERE `ca_issue` = 'comodo.com';
66
UPDATE `dns_ssl_ca` SET `ca_issue` = 'sectigo.com' WHERE `ca_issue` = 'comodoca.com';
77
UPDATE `dns_ssl_ca` SET `ca_name` = 'Sectigo (formerly Comodo CA)' WHERE `ca_issue` = 'sectigo.com';
88
-- not updating the dns_rr table to change all CAA records that have comodo.com / comodoca.com - we should not touch users records imo - TP
9-
109
-- #6445 Update the mailbox_soft_delete config option to it's new structure.
1110
-- UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=n', 'mailbox_soft_delete=0') WHERE config LIKE '%mailbox_soft_delete=n%'
12-
-- UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=y', 'mailbox_soft_delete=7') WHERE config LIKE '%mailbox_soft_delete=y%'
11+
-- UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=y', 'mailbox_soft_delete=7') WHERE config LIKE '%mailbox_soft_delete=y%'

install/sql/ispconfig3.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,6 +1461,7 @@ CREATE TABLE `server_php` (
14611461
`php_fpm_pool_dir` varchar(255) DEFAULT NULL,
14621462
`php_fpm_socket_dir` varchar(255) DEFAULT NULL,
14631463
`active` enum('n','y') NOT NULL DEFAULT 'y',
1464+
`sortprio` int(20) NOT NULL DEFAULT 100,
14641465
PRIMARY KEY (`server_php_id`)
14651466
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
14661467

install/tpl/server.ini.master

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,10 @@ overquota_notify_onok=n
136136
logging=yes
137137
php_fpm_reload_mode=reload
138138
php_fpm_default_chroot=n
139+
vhost_proxy_protocol_enabled=n
140+
vhost_proxy_protocol_protocols=ipv4
141+
vhost_proxy_protocol_http_port=880
142+
vhost_proxy_protocol_https_port=8443
139143

140144
[dns]
141145
bind_user=root

install/update.php

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,9 @@
274274
$inst->db->setDBData($conf['mysql']["host"], $conf['mysql']["ispconfig_user"], $conf['mysql']["ispconfig_password"], $conf['mysql']["port"]);
275275
$inst->db->setDBName($conf['mysql']['database']);
276276

277+
//* Check MySQL version
278+
$inst->check_mysql_version();
279+
277280
//* initialize the master DB, if we have a multiserver setup
278281
if($conf['mysql']['master_slave_setup'] == 'y') {
279282

@@ -366,15 +369,47 @@
366369
//** Check for current service config state and compare to our results
367370
if ($conf['mysql']['master_slave_setup'] == 'y') $current_svc_config = $inst->dbmaster->queryOneRecord("SELECT mail_server,web_server,dns_server,xmpp_server,firewall_server,vserver_server,db_server FROM ?? WHERE server_id=?", $conf['mysql']['master_database'] . '.server', $conf['server_id']);
368371
else $current_svc_config = $inst->db->queryOneRecord("SELECT mail_server,web_server,dns_server,xmpp_server,firewall_server,vserver_server,db_server FROM ?? WHERE server_id=?", $conf["mysql"]["database"] . '.server', $conf['server_id']);
369-
$conf['services']['mail'] = check_service_config_state('mail_server', $conf['postfix']['installed']);
370-
$conf['services']['dns'] = check_service_config_state('dns_server', ($conf['powerdns']['installed'] || $conf['bind']['installed'] || $conf['mydns']['installed']));
371-
$conf['services']['web'] = check_service_config_state('web_server', ($conf['apache']['installed'] || $conf['nginx']['installed']));
372-
$conf['services']['xmpp'] = check_service_config_state('xmpp_server', $conf['xmpp']['installed']);
373-
$conf['services']['firewall'] = check_service_config_state('firewall_server', ($conf['ufw']['installed'] || $conf['firewall']['installed']));
374-
$conf['services']['vserver'] = check_service_config_state('vserver_server', $conf['services']['vserver']);
372+
373+
if(isset($conf['postfix']['installed']) && $conf['postfix']['installed'] == true) {
374+
$conf['services']['mail'] = check_service_config_state('mail_server', true);
375+
} else {
376+
$conf['services']['mail'] = check_service_config_state('mail_server', false);
377+
}
378+
379+
if(isset($conf['powerdns']['installed']) && $conf['powerdns']['installed'] == true || isset($conf['bind']['installed']) && $conf['bind']['installed'] == true || isset($conf['mydns']['installed']) && $conf['mydns']['installed'] == true) {
380+
$conf['services']['dns'] = check_service_config_state('dns_server', true);
381+
} else {
382+
$conf['services']['dns'] = check_service_config_state('dns_server', false);
383+
}
384+
385+
if(isset($conf['apache']['installed']) && $conf['apache']['installed'] == true || isset($conf['nginx']['installed']) && $conf['nginx']['installed'] == true) {
386+
$conf['services']['web'] = check_service_config_state('web_server', true);
387+
} else {
388+
$conf['services']['web'] = check_service_config_state('web_server', false);
389+
}
390+
391+
if(isset($conf['xmpp']['installed']) && $conf['xmpp']['installed'] == true) {
392+
$conf['services']['xmpp'] = check_service_config_state('xmpp_server', true);
393+
} else {
394+
$conf['services']['xmpp'] = check_service_config_state('xmpp_server', false);
395+
}
396+
397+
if(isset($conf['ufw']['installed']) && $conf['ufw']['installed'] == true || isset($conf['firewall']['installed']) && $conf['firewall']['installed'] == true) {
398+
$conf['services']['firewall'] = check_service_config_state('firewall_server', true);
399+
} else {
400+
$conf['services']['firewall'] = check_service_config_state('firewall_server', false);
401+
}
402+
403+
if(isset($conf['vserver']['installed']) && $conf['vserver']['installed'] == true) {
404+
$conf['services']['vserver'] = check_service_config_state('vserver_server', true);
405+
} else {
406+
$conf['services']['vserver'] = check_service_config_state('vserver_server', false);
407+
}
408+
375409
$conf['services']['db'] = check_service_config_state('db_server', true); /* Will always offer as MySQL is of course installed on this host as it's a requirement for ISPC to work... */
376410
unset($current_svc_config);
377411

412+
378413
//** Write new decisions into DB
379414
$sql = "UPDATE ?? SET mail_server = '{$conf['services']['mail']}', web_server = '{$conf['services']['web']}', dns_server = '{$conf['services']['dns']}', file_server = '{$conf['services']['file']}', db_server = '{$conf['services']['db']}', vserver_server = '{$conf['services']['vserver']}', proxy_server = '{$conf['services']['proxy']}', firewall_server = '{$conf['services']['firewall']}', xmpp_server = '{$conf['services']['xmpp']}' WHERE server_id = ?";
380415
$inst->db->query($sql, $conf['mysql']['database'].'.server', $conf['server_id']);

interface/web/admin/form/server_config.tform.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -934,10 +934,24 @@
934934
),
935935
'vhost_proxy_protocol_enabled' => array (
936936
'datatype' => 'VARCHAR',
937-
'formtype' => 'CHECKBOX',
937+
'formtype' => 'SELECT',
938938
'default' => 'n',
939-
'value' => array(0 => 'n',1 => 'y')
939+
'value' => array(
940+
'n' => 'Disabled',
941+
'y' => 'Enabled (per site)',
942+
'all' => 'Enabled (all sites)'
943+
)
940944
),
945+
'vhost_proxy_protocol_protocols' => array(
946+
'datatype' => 'VARCHAR',
947+
'formtype' => 'SELECT',
948+
'value' => array(
949+
'ipv4' => 'IPv4',
950+
'ipv6' => 'IPv6',
951+
'ipv4,ipv6' => 'IPv4 + IPv6'
952+
),
953+
'default' => 'ipv4'
954+
),
941955
'vhost_proxy_protocol_http_port' => array(
942956
'datatype' => 'VARCHAR',
943957
'formtype' => 'TEXT',

interface/web/admin/form/server_php.tform.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,4 +248,20 @@
248248
//#################################
249249
)
250250
);
251+
$form["tabs"]['php_sort'] = array (
252+
'title' => "PHP Sort Priority",
253+
'width' => 80,
254+
'template' => "templates/server_php_sort_edit.htm",
255+
'fields' => array(
256+
'sortprio' => array (
257+
'datatype' => 'INTEGER',
258+
'formtype' => 'TEXT',
259+
'default' => '100',
260+
'value' => '',
261+
'separator' => '',
262+
'width' => '10',
263+
'maxlength' => '20'
264+
),
265+
)
266+
);
251267
?>

interface/web/admin/lib/lang/ar_server_config.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
333333
$wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
334334
$wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
335335
$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
336+
$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
336337
$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
337338
$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
338339
$wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';

0 commit comments

Comments
 (0)