Skip to content

Commit 6ec1f43

Browse files
committed
Merge branch 'develop' into goaccess-move-files
2 parents 5089e79 + a2b79ac commit 6ec1f43

File tree

106 files changed

+1091
-284
lines changed

Some content is hidden

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

106 files changed

+1091
-284
lines changed

install/install.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@
150150
$retval=shell_exec("which which");
151151
if (empty($retval)) die ("ISPConfig requieres which \n");
152152

153+
$inst->check_prerequisites();
154+
153155
swriteln($inst->lng(' Following will be a few questions for primary configuration so be careful.'));
154156
swriteln($inst->lng(' Default values are in [brackets] and can be accepted with <ENTER>.'));
155157
swriteln($inst->lng(' Tap in "quit" (without the quotes) to stop the installer.'."\n\n"));
@@ -574,6 +576,12 @@
574576
$inst->install_ispconfig_interface = false;
575577
}
576578

579+
// Create SSL certs for non-webserver(s)?
580+
if(!file_exists('/usr/local/ispconfig/interface/ssl/ispserver.crt')) {
581+
if(strtolower($inst->simple_query('Do you want to create SSL certs for your server?', array('y', 'n'), 'y')) == 'y')
582+
$inst->make_ispconfig_ssl_cert();
583+
}
584+
577585
$inst->install_ispconfig();
578586

579587
//* Configure DBServer

install/lib/installer_base.lib.php

Lines changed: 293 additions & 34 deletions
Large diffs are not rendered by default.

install/lib/mysql.lib.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,41 @@ public function mapType($metaType, $typeValue) {
761761
break;
762762
}
763763
}
764+
765+
/**
766+
* Get the database type (mariadb or mysql)
767+
*
768+
* @access public
769+
* @return string 'mariadb' or string 'mysql'
770+
*/
771+
772+
public function getDatabaseType() {
773+
$tmp = $this->queryOneRecord('SELECT VERSION() as version');
774+
if(stristr($tmp['version'],'mariadb')) {
775+
return 'mariadb';
776+
} else {
777+
return 'mysql';
778+
}
779+
}
780+
781+
/**
782+
* Get the database version
783+
*
784+
* @access public
785+
* @param bool $major_version_only = true will return the major version only, e.g. 8 for MySQL 8
786+
* @return string version number
787+
*/
788+
789+
public function getDatabaseVersion($major_version_only = false) {
790+
$tmp = $this->queryOneRecord('SELECT VERSION() as version');
791+
$version = explode('-', $tmp['version']);
792+
if($major_version_only == true) {
793+
$version_parts = explode('.', $version[0]);
794+
return $version_parts[0];
795+
} else {
796+
return $version[0];
797+
}
798+
}
764799

765800
}
766801

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
-- add new proxy_protocol column
2+
ALTER TABLE `web_domain`
3+
ADD COLUMN `proxy_protocol` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `log_retention`;
4+
5+
-- backup format
6+
ALTER TABLE `web_domain` ADD `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default' AFTER `backup_copies`;
7+
ALTER TABLE `web_domain` ADD `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip' AFTER `backup_format_web`;
8+
-- end of backup format
9+
10+
-- backup encryption
11+
ALTER TABLE `web_domain` ADD `backup_encrypt` enum('n','y') NOT NULL DEFAULT 'n' AFTER `backup_format_db`;
12+
ALTER TABLE `web_domain` ADD `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `backup_encrypt`;
13+
ALTER TABLE `web_backup` ADD `backup_format` VARCHAR( 64 ) NOT NULL DEFAULT '' AFTER `backup_mode`;
14+
ALTER TABLE `web_backup` ADD `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `filesize`;
15+
-- end of backup encryption
16+
17+
-- rename Comodo to "Sectigo / Comodo CA"
18+
UPDATE `dns_ssl_ca` SET `ca_name` = 'Sectigo / Comodo CA' WHERE `ca_issue` = 'comodoca.com';
19+
20+
-- default php-fpm to ondemand mode
21+
ALTER TABLE `web_domain` ALTER pm SET DEFAULT 'ondemand';
22+
23+
ALTER TABLE `mail_user`
24+
ADD `purge_trash_days` INT NOT NULL DEFAULT '0' AFTER `move_junk`,
25+
ADD `purge_junk_days` INT NOT NULL DEFAULT '0' AFTER `purge_trash_days`;
26+
27+
-- doveadm should be enabled for all mailboxes
28+
UPDATE `mail_user` set `disabledoveadm` = 'n';
29+
30+
-- add disablequota-status for quota-status policy daemon
31+
ALTER TABLE `mail_user` ADD `disablequota-status` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `disabledoveadm`;
32+
33+
-- add disableindexer-worker for solr search
34+
ALTER TABLE `mail_user` ADD `disableindexer-worker` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `disablequota-status`;
35+
36+
-- add SSHFP and DNAME record
37+
ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CNAME','DNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','SSHFP','TXT','TLSA','DNSKEY') NULL DEFAULT NULL AFTER `name`;
38+
39+
-- change cc and sender_cc column type
40+
ALTER TABLE `mail_user` CHANGE `cc` `cc` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci;
41+
42+
-- remove SPDY option
43+
ALTER TABLE `web_domain` DROP COLUMN `enable_spdy`;
44+
45+
-- was missing in incremental, inserted for fixing older installations
46+
ALTER TABLE `web_domain` ADD `folder_directive_snippets` TEXT NULL AFTER `https_port`;
47+
48+
ALTER TABLE `web_domain` ADD `server_php_id` INT(11) UNSIGNED NOT NULL DEFAULT 0;
49+
50+
UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fastcgi_binary, ':', p.php_fastcgi_ini_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE 1;
51+
52+
UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fpm_init_script, ':', p.php_fpm_ini_dir, ':', p.php_fpm_pool_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE 1;
53+
54+
ALTER TABLE `web_domain` CHANGE `apache_directives` `apache_directives` mediumtext NULL DEFAULT NULL;
55+
ALTER TABLE `web_domain` CHANGE `nginx_directives` `nginx_directives` mediumtext NULL DEFAULT NULL;
56+
57+
-- add move to junk before/after option, default to after
58+
ALTER TABLE `mail_user` MODIFY `move_junk` enum('y','a','n') NOT NULL DEFAULT 'y';
59+
60+
-- Change id_rsa column to TEXT format
61+
ALTER TABLE `client` CHANGE `id_rsa` `id_rsa` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci;
62+
63+
ALTER TABLE `directive_snippets` ADD `update_sites` ENUM('y','n') NOT NULL DEFAULT 'n' ;
64+
65+
-- Add DNSSEC Algorithm setting
66+
ALTER TABLE `dns_soa` ADD `dnssec_algo` SET('NSEC3RSASHA1','ECDSAP256SHA256') NULL DEFAULT NULL AFTER `dnssec_wanted`;
67+
UPDATE `dns_soa` SET `dnssec_algo` = 'NSEC3RSASHA1' WHERE `dnssec_algo` IS NULL AND dnssec_initialized = 'Y';
68+
UPDATE `dns_soa` SET `dnssec_algo` = 'ECDSAP256SHA256' WHERE `dnssec_algo` IS NULL AND dnssec_initialized = 'N';
69+
ALTER TABLE `dns_soa` CHANGE `dnssec_algo` `dnssec_algo` SET('NSEC3RSASHA1','ECDSAP256SHA256') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'ECDSAP256SHA256';
70+
71+
-- Fix issue #5635
72+
ALTER TABLE `client_template` CHANGE `ssh_chroot` `ssh_chroot` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
73+
ALTER TABLE `client_template` CHANGE `web_php_options` `web_php_options` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
74+
75+
-- add option to forward in lda, default to forward in mta except for existing forwards
76+
ALTER TABLE `mail_user` ADD `forward_in_lda` enum('n','y') NOT NULL default 'n' AFTER `cc`;
77+
UPDATE `mail_user` set `forward_in_lda` = 'y' where `cc` != '';
Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +0,0 @@
1-
-- add new proxy_protocol column
2-
ALTER TABLE `web_domain`
3-
ADD COLUMN `proxy_protocol` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `log_retention`;
4-
5-
-- backup format
6-
ALTER TABLE `web_domain` ADD `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default' AFTER `backup_copies`;
7-
ALTER TABLE `web_domain` ADD `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip' AFTER `backup_format_web`;
8-
-- end of backup format
9-
10-
-- backup encryption
11-
ALTER TABLE `web_domain` ADD `backup_encrypt` enum('n','y') NOT NULL DEFAULT 'n' AFTER `backup_format_db`;
12-
ALTER TABLE `web_domain` ADD `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `backup_encrypt`;
13-
ALTER TABLE `web_backup` ADD `backup_format` VARCHAR( 64 ) NOT NULL DEFAULT '' AFTER `backup_mode`;
14-
ALTER TABLE `web_backup` ADD `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `filesize`;
15-
-- end of backup encryption
16-
17-
-- rename Comodo to "Sectigo / Comodo CA"
18-
UPDATE `dns_ssl_ca` SET `ca_name` = 'Sectigo / Comodo CA' WHERE `ca_issue` = 'comodoca.com';
19-
20-
-- default php-fpm to ondemand mode
21-
ALTER TABLE `web_domain` ALTER pm SET DEFAULT 'ondemand';
22-
23-
ALTER TABLE `mail_user`
24-
ADD `purge_trash_days` INT NOT NULL DEFAULT '0' AFTER `move_junk`,
25-
ADD `purge_junk_days` INT NOT NULL DEFAULT '0' AFTER `purge_trash_days`;
26-
27-
-- doveadm should be enabled for all mailboxes
28-
UPDATE `mail_user` set `disabledoveadm` = 'n';
29-
30-
-- add disablequota-status for quota-status policy daemon
31-
ALTER TABLE `mail_user` ADD `disablequota-status` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `disabledoveadm`;
32-
33-
-- add disableindexer-worker for solr search
34-
ALTER TABLE `mail_user` ADD `disableindexer-worker` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `disablequota-status`;
35-
36-
-- add SSHFP and DNAME record
37-
ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CNAME','DNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','SSHFP','TXT','TLSA','DNSKEY') NULL DEFAULT NULL AFTER `name`;
38-
39-
-- change cc and sender_cc column type
40-
ALTER TABLE `mail_user` CHANGE `cc` `cc` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
41-
42-
-- remove SPDY option
43-
ALTER TABLE `web_domain` DROP COLUMN `enable_spdy`;
44-
45-
-- was missing in incremental, inserted for fixing older installations
46-
ALTER TABLE `web_domain` ADD `folder_directive_snippets` TEXT NULL AFTER `https_port`;
47-
48-
49-
ALTER TABLE `web_domain` ADD `server_php_id` INT(11) UNSIGNED NOT NULL DEFAULT 0;
50-
51-
UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fastcgi_binary, ':', p.php_fastcgi_ini_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE 1;
52-
53-
UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fpm_init_script, ':', p.php_fpm_ini_dir, ':', p.php_fpm_pool_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE 1;
54-
55-
-- we have to decide whether to delete the column or leave it there for investigating not-converted entries
56-
-- ALTER TABLE `web_domain` DROP COLUMN `fastcgi_php_version`;
57-
58-
ALTER TABLE `web_domain` CHANGE `apache_directives` `apache_directives` mediumtext NULL DEFAULT NULL;
59-
ALTER TABLE `web_domain` CHANGE `nginx_directives` `nginx_directives` mediumtext NULL DEFAULT NULL;
60-
61-
-- add move to junk before/after option, default to after
62-
ALTER TABLE `mail_user` MODIFY `move_junk` enum('y','a','n') NOT NULL DEFAULT 'y';
63-
64-
-- Change id_rsa column to TEXT format
65-
ALTER TABLE `client` CHANGE `id_rsa` `id_rsa` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
66-
67-
ALTER TABLE `directive_snippets` ADD `update_sites` ENUM('y','n') NOT NULL DEFAULT 'n' ;
68-
69-
-- Add DNSSEC Algorithm setting
70-
ALTER TABLE `dns_soa` ADD `dnssec_algo` SET('NSEC3RSASHA1','ECDSAP256SHA256') NULL DEFAULT NULL AFTER `dnssec_wanted`;
71-
UPDATE `dns_soa` SET `dnssec_algo` = 'NSEC3RSASHA1' WHERE `dnssec_algo` IS NULL AND dnssec_initialized = 'Y';
72-
UPDATE `dns_soa` SET `dnssec_algo` = 'ECDSAP256SHA256' WHERE `dnssec_algo` IS NULL AND dnssec_initialized = 'N';
73-
ALTER TABLE `dns_soa` CHANGE `dnssec_algo` `dnssec_algo` SET('NSEC3RSASHA1','ECDSAP256SHA256') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'ECDSAP256SHA256';
74-
75-
-- Fix issue #5635
76-
ALTER TABLE `client_template` CHANGE `ssh_chroot` `ssh_chroot` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
77-
ALTER TABLE `client_template` CHANGE `web_php_options` `web_php_options` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
78-

install/sql/ispconfig3.sql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ CREATE TABLE `client` (
253253
`canceled` enum('n','y') NOT NULL DEFAULT 'n',
254254
`can_use_api` enum('n','y') NOT NULL DEFAULT 'n',
255255
`tmp_data` mediumblob,
256-
`id_rsa` text NOT NULL DEFAULT '',
256+
`id_rsa` text,
257257
`ssh_rsa` varchar(600) NOT NULL DEFAULT '',
258258
`customer_no_template` varchar(255) DEFAULT 'R[CLIENTID]C[CUSTOMER_NO]',
259259
`customer_no_start` int(11) NOT NULL DEFAULT '1',
@@ -1040,7 +1040,8 @@ CREATE TABLE `mail_user` (
10401040
`maildir` varchar(255) NOT NULL default '',
10411041
`maildir_format` varchar(255) NOT NULL default 'maildir',
10421042
`quota` bigint(20) NOT NULL default '-1',
1043-
`cc` text NOT NULL default '',
1043+
`cc` text,
1044+
`forward_in_lda` enum('n','y') NOT NULL default 'n',
10441045
`sender_cc` varchar(255) NOT NULL default '',
10451046
`homedir` varchar(255) NOT NULL default '',
10461047
`autoresponder` enum('n','y') NOT NULL default 'n',

install/tpl/mysql-virtual_email2email.cf.master

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,4 @@ user = {mysql_server_ispconfig_user}
22
password = {mysql_server_ispconfig_password}
33
dbname = {mysql_server_database}
44
hosts = {mysql_server_ip}
5-
query = SELECT email FROM mail_user WHERE email = '%s' AND postfix = 'y' AND disabledeliver = 'n' AND server_id = {server_id}
6-
UNION
7-
SELECT cc AS email FROM mail_user WHERE email = '%s' AND postfix = 'y' AND disabledeliver = 'y' AND server_id = {server_id}
5+
query = SELECT cc AS email FROM mail_user WHERE email = '%s' AND cc != '' AND (forward_in_lda = 'n' OR disabledeliver = 'y') AND postfix = 'y' AND server_id = {server_id}

install/tpl/mysql-virtual_mailboxes.cf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ user = {mysql_server_ispconfig_user}
22
password = {mysql_server_ispconfig_password}
33
dbname = {mysql_server_database}
44
hosts = {mysql_server_ip}
5-
query = select CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') from mail_user where login = '%s' and postfix = 'y' and server_id = {server_id}
5+
query = select CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') from mail_user where login = '%s' and postfix = 'y' and disabledeliver = 'n' and server_id = {server_id}

install/uninstall.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@
8888
exec('rm -rf /usr/local/ispconfig');
8989

9090
// Delete various other files
91+
@unlink("/usr/local/bin/letsencrypt_post_hook.sh");
92+
@unlink("/usr/local/bin/letsencrypt_pre_hook.sh");
93+
@unlink("/usr/local/bin/letsencrypt_renew_hook.sh");
9194
@unlink("/usr/local/bin/ispconfig_update.sh");
9295
@unlink("/usr/local/bin/ispconfig_update_from_svn.sh");
9396
@unlink("/var/spool/mail/ispconfig");

install/update.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@
188188
if (!$inst->get_php_version()) die('ISPConfig requieres PHP '.$inst->min_php."\n");
189189
$inst->is_update = true;
190190

191+
$inst->check_prerequisites();
192+
191193
echo "This application will update ISPConfig 3 on your server.\n\n";
192194

193195
//* Make a backup before we start the update
@@ -534,6 +536,12 @@
534536
}
535537
}
536538

539+
// Create SSL certs for non-webserver(s)?
540+
if(!file_exists('/usr/local/ispconfig/interface/ssl/ispserver.crt')) {
541+
if(strtolower($inst->simple_query('Do you want to create SSL certs for your server?', array('y', 'n'), 'y')) == 'y')
542+
$inst->make_ispconfig_ssl_cert();
543+
}
544+
537545
$inst->install_ispconfig();
538546

539547
// Cleanup

0 commit comments

Comments
 (0)