ISPConfig 3 issueshttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues2024-03-08T10:11:08Zhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6663Menu item title link shall use target of the first item2024-03-08T10:11:08ZTill BrehmMenu item title link shall use target of the first itemhttps://forum.howtoforge.com/threads/menu-head-name-linking.92005/#post-454637https://forum.howtoforge.com/threads/menu-head-name-linking.92005/#post-4546373.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6662Add amazontrust.com CA2024-03-07T09:30:48ZTill BrehmAdd amazontrust.com CAAdd the CA amazontrust.com for CAA records.Add the CA amazontrust.com for CAA records.3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6654Rspamd R_DUMMY Symbol is missing on some systems2024-02-26T09:21:45ZTill BrehmRspamd R_DUMMY Symbol is missing on some systemshttps://forum.howtoforge.com/threads/rspamd-whitelist.84552/
https://forum.howtoforge.com/threads/spamfilter-blacklist-does-not-work.91946/https://forum.howtoforge.com/threads/rspamd-whitelist.84552/
https://forum.howtoforge.com/threads/spamfilter-blacklist-does-not-work.91946/3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6651Remove old OpenVZ code (vm module)2024-02-20T07:51:27ZTill BrehmRemove old OpenVZ code (vm module)The traditional OpenVZ Kernel has not been available for quite some time, so keeping the code for it in ISPConfig makes no sense as its of no use on any current Linux system. The last OpenVZ Kernel was Linux Kernel 2.5 or 2.6, if I remem...The traditional OpenVZ Kernel has not been available for quite some time, so keeping the code for it in ISPConfig makes no sense as its of no use on any current Linux system. The last OpenVZ Kernel was Linux Kernel 2.5 or 2.6, if I remember correctly. This feature request is to remove the old legacy OpenVZ code to clean up the code base.3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6649Parse options from php.ini settings to php pool file directly2024-02-13T16:54:44ZKreso PendicParse options from php.ini settings to php pool file directly3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6639ISPConfig CLI command2024-02-01T16:05:49ZTill BrehmISPConfig CLI commandImplement a new modular ISPConfig command-line interface. The command will be named "ispc". It will also replace the old update command, ispconfig_update.sh.
Example commands:
ispc version (Shows ISPConfig version)
ispc update (Runs IS...Implement a new modular ISPConfig command-line interface. The command will be named "ispc". It will also replace the old update command, ispconfig_update.sh.
Example commands:
ispc version (Shows ISPConfig version)
ispc update (Runs ISPConfig Update)
ispc backup (Make a backup of the ISPConfig database and files)
ispc password admin (set new password for user admin)
ispc server plugin enable cron (enables the cron server plugin)
ispc help (Will show available modules and command options)
In the first step, the basis for the new cli will be implemented with a few simple base functions like the version command. More commands will be added later on.3.2.12Till BrehmTill Brehmhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6632Disable FastCGI option on newly installed systems2024-01-23T22:58:24ZThomDisable FastCGI option on newly installed systems3.2.12ThomThomhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6622Change in system requirements for ISPConfig 3.2.122023-12-13T19:54:28ZTill BrehmChange in system requirements for ISPConfig 3.2.12The following system requirements will change with the release of ISPConfig 3.2.12:
- The min. PHP version will change from PHP 5.4 to PHP 7.0.
- The PHP OpenSSL Module is required.The following system requirements will change with the release of ISPConfig 3.2.12:
- The min. PHP version will change from PHP 5.4 to PHP 7.0.
- The PHP OpenSSL Module is required.3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6616Question for creating SSL cert when updating2023-12-03T21:37:14ZThomQuestion for creating SSL cert when updating* Set default to no when updating (always)
* Fix format: `Do you want to create SSL certs for your server? (yes,no) [no]:` instead of `Do you want to create SSL certs for your server? (y,n) [y]:`* Set default to no when updating (always)
* Fix format: `Do you want to create SSL certs for your server? (yes,no) [no]:` instead of `Do you want to create SSL certs for your server? (y,n) [y]:`3.2.12ThomThomhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6614Spamfilter configuration is not updated when changing the policy through API2023-12-02T10:15:00ZThomSpamfilter configuration is not updated when changing the policy through API<!-- Before creating a bug report, please:
- Read the contribution guidelines: https://git.ispconfig.org/ispconfig/ispconfig3/-/blob/develop/CONTRIBUTING.md
- Do not ask support questions here. If you are unsure if your problem is a bug,...<!-- Before creating a bug report, please:
- Read the contribution guidelines: https://git.ispconfig.org/ispconfig/ispconfig3/-/blob/develop/CONTRIBUTING.md
- Do not ask support questions here. If you are unsure if your problem is a bug, post a thread on the forum: https://www.howtoforge.com/community/#ispconfig-3.23
- Make sure to remove any content from the description that you did not add. For example, if there are no related log entries, remove the whole "Related log entries" part.
-->
## Summary
<!-- What is happening and what is wrong with that? -->
When updating a spam policy through the API with mail_policy_update, there is no trigger to update the config files that are based on this policy.
## Steps to reproduce
1. Send POST request to remote/json.php?mail_policy_update
## Correct behaviour
<!-- What should happen instead? -->
The configuration should be updated. This does happen when making a change to the policy through the UI:
```
function onAfterDatalogSave($insert = false) {
global $app;
if(!$insert && $this->record_has_changed){
$spamfilter_users = $app->db->queryAllRecords("SELECT * FROM spamfilter_users WHERE policy_id = ?", intval($this->id));
if(is_array($spamfilter_users) && !empty($spamfilter_users)){
foreach($spamfilter_users as $spamfilter_user){
$app->db->datalogUpdate('spamfilter_users', $spamfilter_user, 'id', $spamfilter_user["id"], true);
// check if this is an email domain
if(substr($spamfilter_user['email'],0,1) == '@') {
$domain = substr($spamfilter_user['email'],1);
// Nothing special to do for a domain
}
}
}
}
}
```
## Environment
ISPConfig version: 3.2.11
<!-- _you can use `grep 'ISPC_APP_VERSION' /usr/local/ispconfig/server/lib/config.inc.php` to get it from the command line_ -->
## References
https://forum.howtoforge.com/threads/rspamd-spamfilter-policy-conf-file-not-update-on-spamfilter-policy-score-update-via-api.91491/#post-4521193.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6612as Client -> new website - php handler default set to system default even if ...2023-11-24T07:23:04ZHannesas Client -> new website - php handler default set to system default even if in client limit the option is disabled## Summary
as Client -\> new website - php handler default set to system default even if in client limit the option is disabled
If global setting (system-\>server config-\>web-\>php) Default PHP Handler is Fast-CGI than customer can ch...## Summary
as Client -\> new website - php handler default set to system default even if in client limit the option is disabled
If global setting (system-\>server config-\>web-\>php) Default PHP Handler is Fast-CGI than customer can choose fast cgi (in the \<select\>) even if in client limit the option is disabled
## Steps to reproduce
1. create client template with the only php handler option "Disabled" and add it to an client
2. if global setting (system-\>server config-\>web-\>php) Default PHP Handler is Fast-CGI than customer can choose fast cgi on new websites
3. create a website as user
## Environment
Ubuntu 22.04 ISPConfig 3.2.11p1
## Proposed fix
maybe there is an better option/possibility somewhere in the form definition to set the dynamic default values
my change would be
```plaintext
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -117,19 +117,31 @@
$server_id = $web_servers[0];
$app->tpl->setVar("server_id_value", $server_id, true);
unset($web_servers);
- } else {
+ // Set the default php handler on new form for the client
+ $client = $app->db->queryOneRecord("SELECT client.web_php_options FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+ $allowedPHPHandler = explode(',', $client['web_php_options']);
+ $web_config = $app->getconf->get_server_config($server_id, 'web'); //Get default php handler
+ if (in_array($web_config['php_handler'],$allowedPHPHandler)) { //if default php handler is in allowed php handler of client
+ $app->tform->formDef['tabs']['domain']['fields']['php']['default'] = $web_config['php_handler'];
+ } elseif(in_array('no',$allowedPHPHandler)) { //check if "Disabled" is allowed in template - if yes set it as default
+ $app->tform->formDef['tabs']['domain']['fields']['php']['default'] = 'no';
+ } elseif (count($allowedPHPHandler) > 0 && $allowedPHPHandler != "") { // else set the first allowed in the list if there is an element
+ $app->tform->formDef['tabs']['domain']['fields']['php']['default'] = $allowedPHPHandler[0];
+ } else { //set it to disabled if no other option is available (changes in templates of existing websites bypass the checks in client limits)
+ $app->tform->formDef['tabs']['domain']['fields']['php']['default'] = 'no';
+ }
+ }else {
$settings = $app->getconf->get_global_config('sites');
$server_id = intval($settings['default_webserver']);
$app->tform->formDef['tabs']['domain']['fields']['server_id']['default'] = $server_id;
+ $web_config = $app->getconf->get_server_config($server_id, 'web');
+ $app->tform->formDef['tabs']['domain']['fields']['php']['default'] = $web_config['php_handler'];
}
if(!$server_id){
$default_web_server = $app->db->queryOneRecord("SELECT server_id FROM server WHERE web_server = ? ORDER BY server_id LIMIT 0,1", 1);
$server_id = $default_web_server['server_id'];
}
- $web_config = $app->getconf->get_server_config($server_id, 'web');
- $app->tform->formDef['tabs']['domain']['fields']['php']['default'] = $web_config['php_handler'];
$app->tform->formDef['tabs']['domain']['readonly'] = false;
-
$app->tpl->setVar('vhostdomain_type', $this->_vhostdomain_type, true);
parent::onShowNew();
}
```
##3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6610manually added DKIM key creates empty DNS RR2023-12-09T20:45:19ZMatus Uhlarmanually added DKIM key creates empty DNS RR<!-- Before creating a bug report, please:
- Read the contribution guidelines: https://git.ispconfig.org/ispconfig/ispconfig3/-/blob/develop/CONTRIBUTING.md
- Do not ask support questions here. If you are unsure if your problem is a bug,...<!-- Before creating a bug report, please:
- Read the contribution guidelines: https://git.ispconfig.org/ispconfig/ispconfig3/-/blob/develop/CONTRIBUTING.md
- Do not ask support questions here. If you are unsure if your problem is a bug, post a thread on the forum: https://www.howtoforge.com/community/#ispconfig-3.23
- Make sure to remove any content from the description that you did not add. For example, if there are no related log entries, remove the whole "Related log entries" part.
-->
## Summary
<!-- What is happening and what is wrong with that? -->
Adding existing DKIM key for a domain by pasting the it into "DKIM Private-key:" textbox (instead of using "Generate DKIM Private-key" button) and saving it adds dummy TXT record (empty "p=") to DNS zone.
## Steps to reproduce
1. Enter Email / Mail Domain in ISPConfig interface
2. Expand DKIM options by clicking "Domain Keys Identifid Mail (DKIM)" button
3. click the "enable DKIM:" text box
4. paste existing DKIM key to the "DKIM Private-key:"
5. click the "Save" button
6. the new TXT records without public key gets added to the domain.
## Correct behaviour
<!-- What should happen instead? -->
The DKIM TXT Record should be only added to DNS if the public key is known
(and does not alredy exist)
## Environment
Server OS + version: Debian GNU/Linux 10 (buster)
ISPConfig version: 3.2.11
Software version of the related software:
```
Server version: Apache/2.4.38 (Debian)
Server built: 2023-04-21T22:01:00
```
```
PHP 7.3.33-14+0~20230902.114+debian10~1.gbp764b27 (cli) (built: Sep 2 2023 07:11:20) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.33-14+0~20230902.114+debian10~1.gbp764b27, Copyright (c) 1999-2018, by Zend Technologies
```
## References
https://forum.howtoforge.com/threads/creating-domain-with-manually-addded-dkim-key.91432/3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6609Make website http and https port configurable for Apache servers2023-11-19T17:48:23ZTill BrehmMake website http and https port configurable for Apache serversThe website ports are already configurable for Nginx on the options tab. This request is to port this feature to the Apache plugin too.The website ports are already configurable for Nginx on the options tab. This request is to port this feature to the Apache plugin too.3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6608Set account in certbot if multiple accounts are present2023-11-18T12:44:55ZTill BrehmSet account in certbot if multiple accounts are presenthttps://forum.howtoforge.com/threads/playing-with-debian-12-some-issues.91311/page-3https://forum.howtoforge.com/threads/playing-with-debian-12-some-issues.91311/page-33.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6603Warnings due to the use of PHP 8.2 in server.php logs2024-03-01T07:45:03ZMladen B.Warnings due to the use of PHP 8.2 in server.php logs<!-- Before creating a bug report, please:
- Read the contribution guidelines: https://git.ispconfig.org/ispconfig/ispconfig3/-/blob/develop/CONTRIBUTING.md
- Do not ask support questions here. If you are unsure if your problem is a bug,...<!-- Before creating a bug report, please:
- Read the contribution guidelines: https://git.ispconfig.org/ispconfig/ispconfig3/-/blob/develop/CONTRIBUTING.md
- Do not ask support questions here. If you are unsure if your problem is a bug, post a thread on the forum: https://www.howtoforge.com/community/#ispconfig-3.23
- Make sure to remove any content from the description that you did not add. For example, if there are no related log entries, remove the whole "Related log entries" part.
-->
## Summary
Hi,
I'm getting the following errors in `/var/log/ispconfig/cron.log`:
```
Sun Nov 12 10:20:01 AM CET 2023 PHP Warning: Undefined array key "db_flags" in /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php on line 671
Sun Nov 12 10:20:03 AM CET 2023 PHP Warning: Undefined array key 1 in /usr/local/ispconfig/server/lib/classes/cron.d/100-monitor_mem_usage.inc.php on line 79
Sun Nov 12 10:20:03 AM CET 2023 PHP Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /usr/local/ispconfig/server/lib/classes/cron.d/100-monitor_mem_usage.inc.php on line 79
Sun Nov 12 10:21:01 AM CET 2023 finished server.php.
```
I've looked into `server/lib/classes/db_mysql.inc.php`, line 671:
```
$clientdb_flags = ($conf['db_flags'] !== NULL) ? $conf['db_flags'] : NULL;
```
which looks like the cause for the emitting of the 1st warning above, since I don't see 'db_flags' nowhere in any config file(s) defined, under `/usr/local/ispconfig`. It seems there should be an error control operator for suppressing errors/warnings (@) on that line, if we wanted to ignore the warning or the check should be written in a different way, to avoid having warning emitted in the first place (e.g. using `array_key_exists()` or so). I haven't created any PR for this since I'm not sure which way you guys want this to be solved (if at all).
The 2nd warning seems to have the same traits as the 1st one.
The 3rd warning is just an obsoletion warning, which could have slipped under your radar, I guess.
Btw, thanks again for creating this great software :) :beers:
Cheers.
## Steps to reproduce
1. Open the log at /var/log/ispconfig/cron.log
2. Inspect the log
## Correct behaviour
There should be no errors/warnings in the log.
## Environment
Server OS + version: **Debian GNU/Linux 12 (bookworm)** / ISPConfig version: **3.2.11p1**
Software version of the related software:
```
Apache/2.4.57
PHP 8.2.7
```
## Related log entries
```
Sun Nov 12 10:20:01 AM CET 2023 PHP Warning: Undefined array key "db_flags" in /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php on line 671
Sun Nov 12 10:20:03 AM CET 2023 PHP Warning: Undefined array key 1 in /usr/local/ispconfig/server/lib/classes/cron.d/100-monitor_mem_usage.inc.php on line 79
Sun Nov 12 10:20:03 AM CET 2023 PHP Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /usr/local/ispconfig/server/lib/classes/cron.d/100-monitor_mem_usage.inc.php on line 79
Sun Nov 12 10:21:01 AM CET 2023 finished server.php.
```3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6602Add a post-update hook script2023-11-09T09:40:17ZTill BrehmAdd a post-update hook scriptAdd a script that runs after an ISPConfig update to make customizations easier.Add a script that runs after an ISPConfig update to make customizations easier.3.2.12Till BrehmTill Brehmhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6592Website edit - after an validations error (example write xxx into Quota and ...2023-12-02T10:22:10ZHannesWebsite edit - after an validations error (example write xxx into Quota and save) than document_root is empty## Summary
Edit a Website \[Tab Domian\] - trigger an error (example write xxx into Quota and save) than document_root is empty (and maybe other)
(Maybe it is only "cosmetic" but not sure - there a lot of variables/code is this form)
...## Summary
Edit a Website \[Tab Domian\] - trigger an error (example write xxx into Quota and save) than document_root is empty (and maybe other)
(Maybe it is only "cosmetic" but not sure - there a lot of variables/code is this form)
## Steps to reproduce
1. Edit a Website
2. trigger an validations error (example write xxx into Quota)
$this-\>dataRecords contains (web_vhost_domain_edit)
`Array ( [domain_id] => 1 [sys_userid] => 1 [sys_groupid] => 2 [sys_perm_user] => riud [sys_perm_group] => ru [sys_perm_other] => [server_id] => 1 [ip_address] => * [ipv6_address] => [domain] => testdom.xx [type] => vhost [parent_domain_id] => 0 [vhost_type] => name [document_root] => /var/www/clients/client1/web1 [web_folder] => [system_user] => web1 [system_group] => client1 [hd_quota] => 44 [traffic_quota] => -1 [cgi] => n [ssi] => n [suexec] => y [errordocs] => 1 [is_subdomainwww] => 1 [subdomain] => www [php] => no [ruby] => n [python] => n [perl] => n [redirect_type] => [redirect_path] => [seo_redirect] => [rewrite_to_https] => n [ssl] => n [ssl_letsencrypt] => n [ssl_letsencrypt_exclude] => n [ssl_state] => [ssl_locality] => [ssl_organisation] => [ssl_organisation_unit] => [ssl_country] => [ssl_domain] => [ssl_request] => [ssl_cert] => [ssl_bundle] => [ssl_key] => [ssl_action] => [stats_password] => [stats_type] => awstats [allow_override] => All [apache_directives] => [nginx_directives] => [php_fpm_use_socket] => y [php_fpm_chroot] => n [pm] => ondemand [pm_max_children] => 10 [pm_start_servers] => 2 [pm_min_spare_servers] => 1 [pm_max_spare_servers] => 5 [pm_process_idle_timeout] => 10 [pm_max_requests] => 0 [php_open_basedir] => /var/www/clients/client1/web1/web:/var/www/clients/client1/web1/private:/var/www/clients/client1/web1/tmp:/var/www/testdom.xx/web:/srv/www/testdom.xx/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/dev/random:/dev/urandom [custom_php_ini] => [backup_interval] => none [backup_copies] => 1 [backup_format_web] => default [backup_format_db] => gzip [backup_encrypt] => n [backup_password] => [backup_excludes] => [active] => y [traffic_quota_lock] => n [proxy_directives] => [last_quota_notification] => [rewrite_rules] => [added_date] => 2023-10-19 [added_by] => admin [directive_snippets_id] => 0 [enable_pagespeed] => n [http_port] => 80 [https_port] => 443 [folder_directive_snippets] => [log_retention] => 10 [proxy_protocol] => n [server_php_id] => 0 [jailkit_chroot_app_sections] => [jailkit_chroot_app_programs] => [delete_unused_jailkit] => n [last_jailkit_update] => 2023-10-19 [last_jailkit_hash] => )`
$this-\>dataRecords after an Error
`Array ( [server_id] => 1 [ip_address] => * [ipv6_address] => [domain] => testdom.xx [type] => vhost [parent_domain_id] => 0 [vhost_type] => name [hd_quota] => 0 [traffic_quota] => -1 [cgi] => n [ssi] => n [suexec] => y [errordocs] => 1 [subdomain] => www [ssl] => n [ssl_letsencrypt] => n [php] => no [server_php_id] => 0 [perl] => n [ruby] => n [python] => n [enable_pagespeed] => [active] => y [web_folder] => )`
## Environment
Ubuntu 22.04 ISPConfig version: 3.2.113.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6591Further Improve PHP 8.2 support2023-12-02T10:17:09ZTill BrehmFurther Improve PHP 8.2 supporthttps://forum.howtoforge.de/threads/php-warning-undefined-variable.13566/#post-65093https://forum.howtoforge.de/threads/php-warning-undefined-variable.13566/#post-650933.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6588Test if custom path option for shell users is broken2023-10-12T05:16:31ZTill BrehmTest if custom path option for shell users is brokenhttps://forum.howtoforge.com/threads/sftp-not-working.91285/https://forum.howtoforge.com/threads/sftp-not-working.91285/3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6587Rspamd config overrides for rbl_group.conf & surbl_group.conf2023-12-02T10:25:28ZZakRspamd config overrides for rbl_group.conf & surbl_group.confIn ISPConfig up to 3.2.11 two overrides for rspamd are generated. Namely rbl_group.conf & surbl_group.conf.
These files render the stock "scores" and local configuration useless, since it activly overwrites the whole config from scores.d...In ISPConfig up to 3.2.11 two overrides for rspamd are generated. Namely rbl_group.conf & surbl_group.conf.
These files render the stock "scores" and local configuration useless, since it activly overwrites the whole config from scores.d/rbl_group.conf & scores.d/surbl_group.conf - and even more problematic it ignores the config under local.d. \
I consider this a bug, since it interferes with stock and a possibly present custom configuration as well. \
\
I do see, that a couple of symbols where scored down, a lot of symbols where removed and only three where added (RBL_SPAMHAUS_XBL_ANY, RAMBLER_URIBL & RAMBLER_EMAILBL).
\
I can only guess that this is a remnant from the introduction of rspamd support. \
\
Please remove the generation of the overrides. It's the admins job to get the scores right and customize the spam protection.3.2.12ThomThom