ISPConfig 3.1.13 installed using Perfect Server Quide for Stretch and Apache. This is a test system, freshly installed and updated to latest Debian and ISPConfig. I installed ISPConfig3 Plugins for Roundcube. The plugins appear in the Account settings, but every time I click one of them a popop box appears stating I could fix other errors by reading logs, but this error does not write anything in any logfile I have looked at. /var/log/roundcube/errors, /var/log/syslog, /var/log/apache/* do not show anything wrong. How can I get more information on what is not found? This error does not appear on my production systems, luckily. I can not see what could be wrong. I already downgraded the ISPCONFIG3_plugins to before May 2018 version, that looked like the only code change since last autumn. Code: ##### SERVER ##### IP-address (as per hostname): ***.***.***.*** [WARN] could not determine server's ip address by ifconfig [INFO] ISPConfig is installed. ##### ISPCONFIG ##### ISPConfig version is 3.1.13 ##### VERSION CHECK ##### [INFO] php (cli) version is 7.0.30-0+deb9u1 ##### PORT CHECK ##### ##### MAIL SERVER CHECK ##### ##### RUNNING SERVER PROCESSES ##### [INFO] I found the following web server(s): Apache 2 (PID 22547) [INFO] I found the following mail server(s): Postfix (PID 2279) [INFO] I found the following pop3 server(s): Dovecot (PID 2329) [INFO] I found the following imap server(s): Dovecot (PID 2329) [INFO] I found the following ftp server(s): PureFTP (PID 2448) ##### LISTENING PORTS ##### (only () Local (Address) [localhost]:10023 (956/postgrey) [localhost]:10024 (2310/amavisd-new) [localhost]:10025 (2279/master) [localhost]:10026 (2310/amavisd-new) [localhost]:10027 (2279/master) [anywhere]:587 (2279/master) [localhost]:11211 (724/memcached) [anywhere]:110 (2329/dovecot) [anywhere]:143 (2329/dovecot) [anywhere]:465 (2279/master) [anywhere]:21 (2448/pure-ftpd) [anywhere]:22 (803/sshd) [anywhere]:25 (2279/master) [anywhere]:993 (2329/dovecot) [anywhere]:995 (2329/dovecot) *:*:*:*::*:10023 (956/postgrey) *:*:*:*::*:10024 (2310/amavisd-new) *:*:*:*::*:10026 (2310/amavisd-new) *:*:*:*::*:3306 (2070/mysqld) *:*:*:*::*:587 (2279/master) [localhost]10 (2329/dovecot) [localhost]43 (2329/dovecot) *:*:*:*::*:80 (22547/apache2) *:*:*:*::*:8080 (22547/apache2) *:*:*:*::*:465 (2279/master) *:*:*:*::*:8081 (22547/apache2) *:*:*:*::*:21 (2448/pure-ftpd) *:*:*:*::*:22 (803/sshd) *:*:*:*::*:25 (2279/master) *:*:*:*::*:443 (22547/apache2) *:*:*:*::*:993 (2329/dovecot) *:*:*:*::*:995 (2329/dovecot) ##### IPTABLES ##### Chain INPUT (policy ACCEPT) target prot opt source destination f2b-postfix-sasl tcp -- [anywhere]/0 [anywhere]/0 multiport dports 25 f2b-dovecot tcp -- [anywhere]/0 [anywhere]/0 multiport dports 110,995,143,993,587,465,4190 f2b-pure-ftpd tcp -- [anywhere]/0 [anywhere]/0 multiport dports 21 f2b-sshd tcp -- [anywhere]/0 [anywhere]/0 multiport dports 22 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain f2b-dovecot (1 references) target prot opt source destination RETURN all -- [anywhere]/0 [anywhere]/0 Chain f2b-postfix-sasl (1 references) target prot opt source destination RETURN all -- [anywhere]/0 [anywhere]/0 Chain f2b-pure-ftpd (1 references) target prot opt source destination RETURN all -- [anywhere]/0 [anywhere]/0 Chain f2b-sshd (1 references) target prot opt source destination RETURN all -- [anywhere]/0 [anywhere]/0
maybe the soap module is missing in php. try to install the php soap module, it should be: apt-get install php7.0-soap for streatch or just: apt-get install php-soap
That was installed, I just copypasted the commands from the Perferct Server Guide. Code: root@web:/tmp# apt-cache policy php7.0-soap php7.0-soap: Asennettu: 7.0.30-0+deb9u1 Ehdokas: 7.0.30-0+deb9u1 root@web:/tmp# apt-cache policy php-soap php-soap: Asennettu: 1:7.0+49 Ehdokas: 1:7.0+49 I installed also the plain php-soap package, but that did not change the error. Also, I forgot to mention in the original post: The plugins can not save anything. All plugins open and I can write in the web form, and save even. But nothing is stored in the database.
Yes, the certificate was created when installing ISPConfig. My browser does complain it is not safe, but shows the certificate information OK. I can not use LE, this is test system in Intranet, with domain name xyzzy.tld. I tried connecting with browser, it says certificate is not trusted because it is self signed. I changed soap_url from IP-number to fqdn. Now the error change to "Soap Error: Bad Request". Still nothing in logs.
I wonder if it might be PHP which blocks the connection. Is it a test system where you would be able to comment out the SSL lines in the ispconfig.vhost so that it uses HTTP instead of https and then try to use an HTTP:// remote api url in RoundCube? If that would work, then we'll have to take a look where the RoundCube plugins have their soap connect lines and change these to ignore invalid SSL certs.
xyzzy.tld is test system, I can muck about any way needed. If I have Code: $rcmail_config['soap_url'] = 'http://web.xyzzy.tld:8080/remote'; the error is Soap Error: Bad Request If I change that to httpS I get Soap Error: Not Found. I removed lines between #SSL Configuration and </VirtualHost>. The soap_url is plain http. I get Soap Error: Not Found. If I now change soap_url to httpS error is: Soap Error: Could not connect to host.
Ok, then the error must have a different reason. I'll have to dig into the code to find out what this short error message might mean.
web.xyzzy.tld points to your test-server? you can test this with i.e. ping. if this fails, add it to /etc/hosts
I've searched in the ispconfig source for this error message and I could not find it, so I guess it's either thrown by the PHP soap extension itself or by the roundcube plugin.
My guess is this has something to do with the not really proper domain, xyzzy.tld. On two production systems where I run Roundcube ISPConfig3 plugins, it works. How can I find out which part of the code is involved here? Then I could maybe see what the plugins are trying to do and why it fails. I do not have much experience with PHP coding, I gave it up when my PHP 4 programs stopped working when PHP 5 came out.
In a first step, you might want to check if the roundcube plugin connects to the API at all. a soap connect is basically the same than a normal http page request, jsut the exchanged data is a different XML dialect. So when this error occurs, you should see a connect to the remote API endpoint URL in the global webserver access.log. It's in the global log as the ispconfig.vhost does not has it's own access.log file.
I now notice that ISPConfig panel does have the self signed certificate, but https://web.xyzzy.tld/ does not. Browser shows "ERR_SSL_PROTOCOL_ERROR". It does work with plain http. This is from clicking in Roundcube Account: Code: 192.168.250.42 - - [28/Aug/2018:12:25:11 +0300] "GET /webmail/?_task=settings&_action=plugin.ispconfig3_account HTTP/1.1" 200 4737 "http://web.xyzzy.tld/webmail/?_task=settings" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36" 192.168.250.42 - - [28/Aug/2018:12:25:11 +0300] "GET /webmail/?_task=settings&_action=plugin.ispconfig3_account.show&_framed=1 HTTP/1.1" 200 3763 "http://web.xyzzy.tld/webmail/?_task=settings&_action=plugin.ispconfig3_account" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36"
If that's from the global access.log, then I would say that RoundCube does not connect to the api as I would expect to see a request with /remote/ path otherwise. Just to cross-check, when you access the ispconfig GUI, then these requests shown up in this log?
Looks like when I use https://web.xyzzy.tld:8080/index.php I do not get lines in that access.log. The logs go to /var/log/apache2/other_vhosts_access.log This is from that log when clicking in Roundcube: Code: web.xyzzy.tld:8080 192.168.250.42 - - [28/Aug/2018:12:37:28 +0300] "GET /datalogstatus.php HTTP/1.1" 200 650 "https://web.xyzzy.tld:8080/index.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36" web.xyzzy.tld:8080 192.168.250.42 - - [28/Aug/2018:12:37:34 +0300] "GET /datalogstatus.php HTTP/1.1" 200 650 "https://web.xyzzy.tld:8080/index.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36" web.xyzzy.tld:8080 192.168.250.42 - - [28/Aug/2018:12:37:40 +0300] "GET /datalogstatus.php HTTP/1.1" 200 650 "https://web.xyzzy.tld:8080/index.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36" web.xyzzy.tld:8080 192.168.250.42 - - [28/Aug/2018:12:37:46 +0300] "GET /datalogstatus.php HTTP/1.1" 200 650 "https://web.xyzzy.tld:8080/index.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36" web.xyzzy.tld:8080 192.168.250.71 - - [28/Aug/2018:12:37:49 +0300] "POST /remoteindex.php HTTP/1.1" 404 2926 "-" "PHP-SOAP/7.0.30-0+deb9u1" web.xyzzy.tld:8080 192.168.250.42 - - [28/Aug/2018:12:37:52 +0300] "GET /datalogstatus.php HTTP/1.1" 200 650 "https://web.xyzzy.tld:8080/index.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36" web.xyzzy.tld:8080 192.168.250.42 - - [28/Aug/2018:12:37:58 +0300] "GET /datalogstatus.php HTTP/1.1" 200 650 "https://web.xyzzy.tld:8080/index.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36" web.xyzzy.tld:8080 192.168.250.42 - - [28/Aug/2018:12:38:04 +0300] "GET /datalogstatus.php HTTP/1.1" 200 650 "https://web.xyzzy.tld:8080/index.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36"
Hmmm: "POST /remoteindex.php HTTP/1.1" 404 2926 "-" "PHP-SOAP/7.0.30-0+deb9u1" should be /remote/index.php maybe a typo in the remote URL, try adding a / at the end, so that it is similar to: https://yourserver:8080/remote/
Missing / at end of soap_url, indeed. Now I get username or password wrong, but that I can fix. After fixin that I get login is not allowed from this hosts IP number. And now it works. I allowed remote access from this hosts own IP-address. Why is that needed? Silly typo. Thanks for help and patience.