virtualmin / virtualmin-gpl Goto Github PK
View Code? Open in Web Editor NEWVirtualmin web hosting control panel for Webmin
Home Page: https://www.virtualmin.com
License: GNU General Public License v3.0
Virtualmin web hosting control panel for Webmin
Home Page: https://www.virtualmin.com
License: GNU General Public License v3.0
I'm not running powerfull VM and I'm seeing Index_cpu.cgi
and stats.cgi
using most of my CPU (~40%).
Is it possible and ok to disable those modules ?
If yes what would be the recommended way to do it ?
Thanks for any input.
Matth
Jamie, hi!
Some admins are very picky on keeping configuration files easily readable and properly formatted.
I have indentation inside <VirtualHost> ... <\VirtualHost>
After Virtualmin runs SSL update it breaks it.
After:
SSLEngine On
SSLCertificateFile /home/user/cert.cert
SSLCertificateKeyFile /home/user/cert.key
SSLCACertificateFile /home/user/cert.ca
Before:
SSLEngine On
SSLCertificateFile /home/user/cert.cert
SSLCertificateKeyFile /home/user/cert.key
SSLCACertificateFile /home/user/cert.ca
Can this be fixed please?
When creating a new virtual server I get the error. I am able to create the proper apache configuration and pool manually. Once created manually it works fine.
With the PHP script execution mode set to FPM, installing WordPress with the built-in installer script the install fail because it requires mysql
module but this module has been removed in PHP 7.0.0.
So in version 7+ the require mode has to be mysqli
On my side i updated the wordpress.pl script with a condition if PHP < 7.0 I'm returning mysql
otherwise I'm returning mysqli
.
I have test the script on a Debian 9 with Webmin 1.860 / Virtualmin 6.01 and PHP 7 only.
I'm happy to do a PR if you wish.
kind regards
Matth
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for cloud.prodesign387.com
Using the webroot path /home/prodesign387/domains/cloud.prodesign387.com/public_html for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Unable to clean up challenge directory /home/prodesign387/domains/cloud.prodesign387.com/public_html/.well-known/acme-challenge
Failed authorization procedure. cloud.prodesign387.com (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://cloud.prodesign387.com.well-known/acme-challenge/N3YjLG6tR5IJMQfCFOCbbScalBghr6hxLUFtjs_yZng: Error getting validation data
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: cloud.prodesign387.com
Type: connection
Detail: Fetching
https://cloud.prodesign387.com.well-known/acme-challenge/N3YjLG6tR5IJMQfCFOCbbScalBghr6hxLUFtjs_yZng:
Error getting validation data
What I see strange is that / is missing in
cloud.prodesign387.comHERE.well-known/acme-challenge
While creating a new virtual server with database, the MySQL password length is always set to 16. Option "Characters for random passwords" works for DB passwords too, but there doesn's seem to be a way to change the initial password length.
There's a manual option to allow longer database user names "mysql_user_size=80" (default 16), is there already or is it possible to have similar setting for database passwords?
I've been experimenting with using Amazon Aurora as a remote MySQL database for Virtualmin. There seems to be an incompatibility, based around the way Virtualmin creates and updates MySQL users.
If I set the Aurora details in Webmin > Servers > MySQL Database Server > Config, Virtualmin correctly tries to create the database and users when I create a new Virtual Server.
However, upon creation, and at modification time, I get an error
"set password for 'example'@'hostname.com'=password('greatpassword') failed: Can't find any matching row in the user table"
The server is created, and the MySQL user is added to the database on Aurora, but no password is set. Attempts to modify the server result in the same error, as do the same efforts from the virtualmin CLI tool ("virtualmin modify-database-pass --domain mydomain.com --type mysql --pass "greatpassword"")
Trying to run the same SQL ("set password for....") directly on the Aurora DB also fails with the same error, even though the user definitely exists ("select * from user where User='example' and host='hostname.com'" returns the result).
A simple fix is to change the way Virtualmin sets and updates the password in /usr/share/webmin/virtual-server/feature-mysql.pl so that it specifies the user and host params in a different way.
Once this change is made, the user is created on the database, and can be modified as normal.
diff --git a/feature-mysql.pl b/feature-mysql.pl
index 33c52dd..cf64c82 100755
--- a/feature-mysql.pl
+++ b/feature-mysql.pl
@@ -2637,7 +2637,7 @@ if (&compare_versions($remote_mysql_version, "5.7.6") >= 0) {
return ("insert into user (host, user, ssl_type, ssl_cipher, x509_issuer, x509_subject, plugin, authentication_string) values ('$host', '$user', '', '', '', '', 'mysql_native_password', $encpass)");
}
elsif (&compare_versions($remote_mysql_version, 5) >= 0) {
- return ("insert into user (host, user, ssl_type, ssl_cipher, x509_issuer, x509_subject) values ('$host', '$user', '', '', '', '')", "flush privileges", "set password for '$user'\@'$host' = $encpass");
+ return ("insert into user (host, user, ssl_type, ssl_cipher, x509_issuer, x509_subject) values ('$host', '$user', '', '', '', '')", "flush privileges", "update user set password=$encpass where User='$user' and Host='$host'");
}
else {
return ("insert into user (host, user, password) values ('$host', '$user', $encpass)");
@@ -2665,7 +2665,7 @@ foreach my $host (&unique(map { $_->[0] } @{$d->{'data'}})) {
$flush++;
}
else {
- $sql = "set password for '$user'\@'$host' = $encpass";
+ $sql = "update user set password=$encpass where User='$user' and Host='$host'";
}
&mysql::execute_sql_logged($mysql::master_db, $sql);
}
Current shebang #!/usr/local/bin/perl is not so portable ( in my case on CentOS 6.8 is missing ).
My proposal is to use #!/usr/bin/env perl or at least the good old #!/usr/bin/perl
So it can use first perl interpreter in path.
Virtualmin on Ubuntu 16.04 can't find the php-fpm service to restart it. It's named php7.0-fpm but even when I add that to php-lib.pl it fails to restart. I can't quite figure out how to make it to the right thing.
Here's where I added it:
foreach my $init ("php-fpm", "php5-fpm", "php7-fpm", "php7.0-fpm",
(map { "php${_}-fpm" } @all_possible_php_versions)) {
my $st = &init::action_status($init);
if ($st) {
$rv->{'init'} = $init;
$rv->{'enabled'} = $init > 1;
last;
}
}
But, no dice.
Also, there's still some issues detecting init type...it still seems to detect/treat it like upstart even though it has systemd. I may have broken it with my change that changed the order of detected init system; or maybe this new system has upstart in addition to systemd or something (I dunno why they'd do that, but sometimes people do weird stuff).
Anyway, error is:
Restarting PHP-FPM server ..
.. failed : Failed to restart php-fpm.service: Unit php-fpm.service not found.
But, I can restart it successfully with:
# service php7.0-fpm restart
And, sites begin to work afterward; so config seems to be doing the right thing, but the service just isn't being restarted.
Hey Jamie,
I've gotten a few requests for configuring the names of these folders, and also complaints about their being multiple versions of them (and I've noticed it, too). I'm trying to figure out why we're creating them at all. Mail clients will create the folders they want (and the user wants), and AFAIK all of them will create a Trash, Drafts, and Sent folder. So, why are we making our own that will end up not being used, in some cases?
I get why we need to create spam and virus folders, since those get foldered before the mail client see them, but why the others? If we do have to create them, instead of leaving it up to the mail client, can they be made configurable, so users can make them match up with the most common mail clients their users use, so they don't end up with duplicates?
Showing the service up/down status is good, but it's not good enough.
The virtualmin system info page should also alert you of errors causing critical services to silently fail.
The perfect example I'm now facing is a silent failure of dovecot
imap server.
All users fail to connect over IMAP and consequently all users are unable to read all mailboxes!!
Hello,
I want to adapt the default FPM config when creating a new virtual-host for that purpose in
Server Templates > PHP options > Additional FPM pool options
I have added this config:
pm = ondemand
pm.max_children = 15
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 200
But any new Vhost created is still and always getting the default config
pm = dynamic
pm.max_children = 9999
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 5
Is there something else to do to have those options replace by my mine ?
Thanks for any input
Kind regards
Matth
Webmin version | 1.872
Usermin version | 1.732
Virtualmin version | 6.02
I changed domain name to a virtualserver (with user name change as well), then I deleted the virtualserver and I got an error during the deletion of the user.
Deleting mail aliases ..
.. done
Deleting Webmin login ..
.. doneDisabling log file rotation ..
.. doneRemoving Nginx virtual host ..
.. doneDeleting Nginx webserver log files ..
.. doneDeleting home directory ..
.. doneDeleting administration user ..
.. Administration user failed! : Failed to open /home/chroot/150600339523877/etc/passwd for writing : No such file or directory at /usr/share/webmin/web-lib-funcs.pl line 1445.Deleting server details for domain.com ..
.. doneRestarting PHP-FPM server ..
.. doneRe-loading Webmin ..
.. doneApplying Nginx configuration ..
.. done
In sub get_postrotate_script in feature-logrotate.pl you make plugin call to "feature_restart_web_command"
I think, it is better to call something like feature_logrotate_reload because maybe you do not want co restart whole server
is already possible to maintain old configuration files after an edit?
For example if I edit php.ini and the old php.ini became filename.ext.DATE-TIME
(with date configurable DATE/TIME for Europe/USA standards.)
Example:
php.ini.2018-15-01-093212
If is not already possible, how about it?
Version
Debian 9
Apache 2.4
Webmin 1.870
Virtualmin 6.01
Background info
Machine name : my.dom.org
The first time I had to declare a domain name in Virtualmin I choosemy.dom.org
instead of dom.org
.
So my.dom.org
was my first Vhost.
I have delete it some time after.
The issue
From here if I want to re-create a virtual hosts for my.dom.org
Virtualmin tells me the documentRoot are stored in /home/my/public_html/
.
But if I access the website I got the standard Apache Debian default page, and after some testing I could confirm that the Document root is instead /var/www/
.
The consequence is that Virtualmin expect all data to be in /home/my/public_html/
but Apache looks at /var/www/
.
For instance it's impossible to request a certificate with Let's Encrypt, always failing because .well-known
can't be found.
In the /sites-available
I have along with other vhost
000-default.conf > /var/www/html
my.dom.org > /home/my/public_html
Not sure if I have done something wrong, and what would it be,if this can be fix without braking all my Apache/Virtualmin setup ?
Could it be a normal behavior ?
Thanks for the clarification
Matth
When I migrate a cPanel backup (using the command line or the web UI), none of the DNS entries are created. I have verified the zone file is present in the backups (in dnszones/{domainname}.db
) but migration-cpanel.pl
does not appear to check for that file. Instead it is expecting to find DNS zone info in a daily backup in a file called _var_named.tar.gz
.
The backup was generated using standard "Backup" feature in cPanel 11. I don't see any options for running a "daily backup" or anything else... It's pretty basic. Which is why I'm migrating a bunch of sites from cPanel to Virtualmin :-)
Hi, with the latest Webmin and Virtualmin, quotas are not saved anymore for virtual servers when users home directory is outside of the default "/home" on separate disk partition. Virtualmin sets unlimited quotas event though default account plan has 1024 MB quota.
Webmin 1.869
Virtualmin 6.02
CentOS 7.4
Home directory base: /var/www/vhosts
$ findmnt -r
/var/www/vhosts /dev/vdb1 ext4 rw,relatime,seclabel,quota,usrquota,grpquota,data=ordered
Also bandwidth monitoring doesn't show up on System Information anymore and the alert box "Information! Virtualmin's configuration has not been checked since..." doesn't go away even after re-checking connfiguration.
All these were still working fine with v6.01 few days ago.
Edit: bandwidth came up after a while (clean install), quotas are still missing.
Hi,
It's just expected in some cases to be bounced back to previous page.
For example when running Checking Configuration and it fails, it lets you set 127.0.0.1 to the list of DNS servers:
After you set it and hit Save it shouldn't take you to Network Configuration page.
Checking Configuration page should add to links the query, like bounce=/virtual-server/check.cgi
, which redirect function should seek for and redirect user back to it.
Could you do it, it's very easy to implement, I think?
It appears that this appears if both the Apache Error & Access log files are not present. I have a lot of websites that I just have an error log for, and the error occurs. If I add the access log the error goes away.
Err:4 http://software.virtualmin.com/gpl/ubuntu virtualmin-xenial InRelease
Could not connect to software.virtualmin.com:80 (108.60.199.117). - connect (110: Connection timed out)
Err:5 http://software.virtualmin.com/gpl/ubuntu virtualmin-universal InRelease
Unable to connect to software.virtualmin.com:http:
If you try to Backup a virtual server and you select the public_html path on "Backup destinations" Local directory like /home/user/public_html virtualmin will delete your public_html path and write a file with filename public_html and without a file extension.
mail.virtualserver.com
, ftp.virtualserver.com
), during TLS handshake negotiation, while using only one IPv4 and IPv6 address for all domains ?Is Virtualmin really configuring Postfix so that it can fully enforce DANE and TLSA??
Reading the official Postfix README on the topic, it's very doubtful that Virtualmin really satisfies all the required settings rigorously.
http://www.postfix.org/TLS_README.html
It'd be great to take a close look at what Virtualmin does regarding TLSA, DANE, DNSSEC, Postfix, and TLS certs, and answer the question, is a Virtualmin server provide all of the modern security functionality available with Postfix.
let's encrypt wildcard support is available now officially, but still not working with virtualmin yet, I'd appreciate your help to add this feature
This is the weirdest damned thing...WordPress installer shows disabled in the Disable Scripts interface and doesn't show up at all for domain install scripts form.
Here's what's whack about it:
In the scripts-lib get_script function, when I log the state of all of the scripts immediately before the object is constructed WordPress has avail_only set to 1 just like all the rest of them.
Here's all the availability related vars for WordPress right before filling in the return hash:
"avail: 1 avail_only: 1 disabled: allowmaster: "
This is identical to all the rest, which all work.
But, when I log it in edit_newscripts.cgi, avail_only is empty, while all the ones that work are 1
.
I can't figure out where it could be changing in the interim. There's no other code I can see that changes the state of that variable.
And, worse, this only happens on Ubuntu 16.04. I thought it might be related to scope changes or something in newer Perls, but it doesn't hit Debian 9, and sticking some my
s in there doesn't fix it.
I'm completely stumped. If you want to see this in action, you can login to 51.15.216.77 with the usual test server password.
I have a fresh Debian 9 virtualmin install and wanted to also install php5.6 in addition with php7.0 that came with debian stretch. I added deb.sury.org repo and installed php5.6 successfully. I also installed php 5.6 fpm which I didnt needed and I removed afterwards. Now I am trying to switch php mode to fpm on one of my virtual server and virtualmin creates the pool conf file to /etc/php/5.6/fpm/pool.d/151472831711092.conf so I am getting Service unavailable when trying to access the website. If I edit /etc/php/7.0/fpm/php-fpm.conf and change include=/etc/php/7.0/fpm/pool.d/.conf to include=/etc/php/5.6/fpm/pool.d/.conf everything works great.
Is this a bug?
Can you let me know how I can fix my setup so it will not break in the future?
One of our servers has a runaway collectinfo.pl. strace shows infinite this:
stat("/etc/named.conf", {st_mode=S_IFREG|0640, st_size=1551, ...}) = 0
stat("/etc/webmin/bind8/zone-names", {st_mode=S_IFREG|0644, st_size=530, ...}) = 0
stat("/etc/named.rfc1912.zones", {st_mode=S_IFREG|0640, st_size=931, ...}) = 0
stat("/etc/named.conf", {st_mode=S_IFREG|0640, st_size=1551, ...}) = 0
stat("/etc/webmin/bind8/zone-names", {st_mode=S_IFREG|0644, st_size=530, ...}) = 0
stat("/etc/named.rfc1912.zones", {st_mode=S_IFREG|0640, st_size=931, ...}) = 0
stat("/etc/named.conf", {st_mode=S_IFREG|0640, st_size=1551, ...}) = 0
stat("/etc/webmin/bind8/zone-names", {st_mode=S_IFREG|0644, st_size=530, ...}) = 0
stat("/etc/named.rfc1912.zones", {st_mode=S_IFREG|0640, st_size=931, ...}) = 0
Both files exist. I'm having trouble locating where this comes from...maybe the build_spf_dmarc_caches function call?
Restoring a backup from one server to another works correctly, however for some reason the newly restored domain BIND DNS zone is missing from Webmin -> Servers -> BIND DNS.
The zone file is correctly created, as is the master zone in named.conf, and the records correctly show up in Virtualmin -> Server Configuration -> DNS Records, but they should also be showing up in Webmin, but currently aren't.
Any ideas?
Centos 7
Webmin version 1.860
Usermin version 1.720
Virtualmin version 6.01
The server is correctly responding to queries for the domain
These features are kind of broken.
CERTBOT-AUTO
and symlink the cert. Symlink is how Let's Encrypt certbot-auto
succeeds at certificate version control, and fights against duplication of expired SSL certificates. Just symlink to /etc/letsencrypt/live/mydomain.com/cert.pem
privkey.pem
chain.pem
or fullchain.pem
. These links will always be the most up to date valid certs, keys and chains for that domain.certbot-auto
to install the certs into Nginx and Apache. With --standalone
mode, NEITHER Nginx NOR Apache is required to be running, in order to obtain LE certs and/or to install them into these web servers' configs.Sometimes the drop down select box of virtual server has incorrect server selected after you reopen and old session. This may drive to incorrect server deletion or similar issues.
Its hard to tell you how to reproduce. But when you have the remember me option enabled and with the latest browser versions caching system sometimes you may see the wrong server selected.
Virtualmin v6.01-3
I keep getting errors for any of my domains on my server. The error is below, along with some info about the server. Most all of my sites are DNS'ed through CloudFlare with all features (save DNS) disabled. I have disabled BIND on the server to reduce conflicts with CloudFlare and my other DNS services pointing to my server. Please help if you can.
Parsing account key...
Parsing CSR...
Registering account...
Already registered!
Verifying oipnetwork.ml...
Wrote file to /home/default/public_html/.well-known/acme-challenge/7Yl64SdWWOK32-xfQgv7r2uYRBv00Ra476FytYW0ocM, but couldn't download http://oipnetwork.ml/.well-known/acme-challenge/7Yl64SdWWOK32-xfQgv7r2uYRBv00Ra476FytYW0ocM
Traceback (most recent call last):
File "/usr/share/webmin/webmin/acme_tiny.py", line 235, in
main(sys.argv[1:])
File "/usr/share/webmin/webmin/acme_tiny.py", line 231, in main
signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, args.dns_hook, args.cleanup_hook, log=LOGGER, CA=args.ca)
File "/usr/share/webmin/webmin/acme_tiny.py", line 184, in get_crt
domain, challenge_status))
ValueError: oipnetwork.ml challenge did not pass: {u'status': u'invalid', u'validationRecord': [{u'addressesResolved': [u'23.95.245.8'], u'url': u'http://oipnetwork.ml/.well-known/acme-challenge/7Yl64SdWWOK32-xfQgv7r2uYRBv00Ra476FytYW0ocM', u'hostname': u'oipnetwork.ml', u'addressesTried': [], u'addressUsed': u'23.95.245.8', u'port': u'80'}], u'keyAuthorization': u'7Yl64SdWWOK32-xfQgv7r2uYRBv00Ra476FytYW0ocM.XduOZq3W286NJp_4QYAeIvZwyZRBMRYhyzsXcvzwEVU', u'uri': u'https://acme-v01.api.letsencrypt.org/acme/challenge/3rd3W5x5h0zxSy0QdwC_CuGB9xvFSjA_xzgnwaIWr9U/1991276825', u'token': u'7Yl64SdWWOK32-xfQgv7r2uYRBv00Ra476FytYW0ocM', u'error': {u'status': 403, u'type': u'urn:acme:error:unauthorized', u'detail': u'Invalid response from http://oipnetwork.ml/.well-known/acme-challenge/7Yl64SdWWOK32-xfQgv7r2uYRBv00Ra476FytYW0ocM: "\n\n<title>404 Not Found</title>\n\n
I have re-built the server over and over to test if it was a config error, also I have tested with disabling the firewalld process entirely. Both to no avail.
Hello,
I don't know if from Virtualmin or Authentic
if I do on shell iptables -L -n |more
I can see all the rules and chains, many as usual...all the banned IPs and so on
If I click on "Linux Firewall"on Networking, the rules are not updated, there's not a button to see all the rules or to update to see the current real status of iptables
thanks
Hi,
It's apparently not needed to pass new
value for target attribute in navigation menu for List Users link:
/virtual-server/list_users.cgi
It happens in all themes.
I currently create local backups and then use a separate backup applications which is much more robust in terms of compression, encryption and incrementals than Virtualmin's function - which is fine because Virtualmin shouldn't be trying to become a fully-fledged backup tool.
However, Virtualmin gzip's the tar files produced from the backup (or tells the tar tool to gzip it, not sure). It would be nice if I could specify no compression for backups, so the backup tool which I use can compress them better without me having to gunzip them after they are backed up.
Hi,
I've been trying to debug the shared logrotate code, because it is not working for me, or I am misunderstanding what it is supposed to do.
I have around a dozen domains, and if I set logrotate_shared=yes
and then run virtualmin disable-feature --all-domains --logrotate
and virtualmin enable-feature --all-domains --logrotate
, I still see per-domain logrotate files in /etc/logrotate.d.
I've been adding a bunch of print statements to feature-logrotate.pl:
# Work out the log files we are rotating
local @logs = &get_all_domain_logs($_[0]);
local @tmpllogs = &get_domain_template_logs($_[0]);
if (@logs) {
# Check if any are already rotated
local $parent = &logrotate::get_config_parent();
foreach my $c (@{$parent->{'members'}}) {
foreach my $n (@{$c->{'name'}}) {
print "DEBUG: c->name = $c->{'name'}, n = $n\n";
if (&indexof($n, @logs) >= 0) {
# Clash!!
&error(&text('setup_clashlogrotate',
"<tt>$n</tt>"));
}
}
}
# If in single config mode, check if there is a block for Virtualmin
# already (based on the directory)
local $logdir = $logs[0];
$logdir =~ s/\/[^\/]+$//;
print "DEBUG: tmpl->logrotate_shared $tmpl->{'logrotate_shared'}\n";
print "DEBUG: logdir $logdir\n";
local $already;
print "DEBUG: logs[0] $logs[0], d->home $d->{'home'}\n";
if ($tmpl->{'logrotate_shared'} eq 'yes' &&
$logs[0] !~ /^\Q$d->{'home'}\E\//) {
print "DEBUG shared yes\n";
LOGROTATE: foreach my $c (@{$parent->{'members'}}) {
foreach my $n (@{$c->{'name'}}) {
print "DEBUG n = $n, c = $c\n";
if ($n =~ /^\Q$logdir\E\/[^\/]+$/) {
$already = $c;
last LOGROTATE;
}
}
}
} else {
print "DEBUG: did not set already = c :(\n";
}
Here's the full output when I enable logrotate for 2 domains after a disable-all:
Updating server daybyday.nl ..
Setting up log file rotation ..
DEBUG: c->name = ARRAY(0x6cd1418), n = /var/log/apache2/*.log
DEBUG: c->name = ARRAY(0x6d239d0), n = /var/log/apt/term.log
DEBUG: c->name = ARRAY(0x6d32820), n = /var/log/apt/history.log
DEBUG: c->name = ARRAY(0x6d327f0), n = /var/log/aptitude
DEBUG: c->name = ARRAY(0x6d2bc78), n = /var/log/clamav/clamav.log
DEBUG: c->name = ARRAY(0x6d2fc20), n = /var/log/clamav/freshclam.log
DEBUG: c->name = ARRAY(0x6cd1a58), n = /var/log/ConsoleKit/history
DEBUG: c->name = ARRAY(0x6d27598), n = /var/log/dpkg.log
DEBUG: c->name = ARRAY(0x6d33618), n = /var/log/alternatives.log
DEBUG: c->name = ARRAY(0x6cd1830), n = /var/log/iptraf/*.log
DEBUG: c->name = ARRAY(0x6d259a8), n = /var/log/knockd.log
DEBUG: c->name = ARRAY(0x6d2b168), n = /var/log/mysql/mysql.log
DEBUG: c->name = ARRAY(0x6d2b168), n = /var/log/mysql/mysql-slow.log
DEBUG: c->name = ARRAY(0x6d2b168), n = /var/log/mysql/error.log
DEBUG: c->name = ARRAY(0x6d2e090), n = /var/log/pm-suspend.log
DEBUG: c->name = ARRAY(0x6d2e090), n = /var/log/pm-powersave.log
DEBUG: c->name = ARRAY(0x6d2b840), n = /var/log/postgresql/*.log
DEBUG: c->name = ARRAY(0x6d300a0), n = /var/log/ppp-connect-errors
DEBUG: c->name = ARRAY(0x6d29470), n = /var/log/razor-agent.log
DEBUG: c->name = ARRAY(0x6d334e0), n = /var/log/syslog
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/mail.info
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/mail.warn
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/mail.err
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/mail.log
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/daemon.log
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/kern.log
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/auth.log
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/user.log
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/lpr.log
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/cron.log
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/debug
DEBUG: c->name = ARRAY(0x6d2ac40), n = /var/log/messages
DEBUG: c->name = ARRAY(0x6d28e28), n = /var/log/tinyproxy/tinyproxy.log
DEBUG: c->name = ARRAY(0x6d2b858), n = /var/log/tomcat7/catalina.out
DEBUG: c->name = ARRAY(0x6d293f8), n = /var/log/unattended-upgrades/unattended-upgrades.log
DEBUG: c->name = ARRAY(0x6d293f8), n = /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
DEBUG: c->name = ARRAY(0x6d293f8), n = /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
DEBUG: c->name = ARRAY(0x6d23478), n = /var/log/vsftpd.log
DEBUG: c->name = ARRAY(0x6c86e38), n = /var/log/wtmp
DEBUG: c->name = ARRAY(0x6d2dc10), n = /var/log/btmp
DEBUG: tmpl->logrotate_shared yes
DEBUG: logdir /home/daybyday.nl/logs
DEBUG: logs[0] /home/daybyday.nl/logs/access_log, d->home /home/daybyday.nl
DEBUG: did not set already = c :(
DEBUG: already = None
.. done
Updating Webmin user ..
.. done
.. done
Re-loading Webmin ..
.. done
Updating server gerben.nl ..
Setting up log file rotation ..
DEBUG: c->name = ARRAY(0x65397e0), n = /var/log/apache2/*.log
DEBUG: c->name = ARRAY(0x66353d0), n = /var/log/apt/term.log
DEBUG: c->name = ARRAY(0x6636ae0), n = /var/log/apt/history.log
DEBUG: c->name = ARRAY(0x66412f0), n = /var/log/aptitude
DEBUG: c->name = ARRAY(0x6634c38), n = /var/log/clamav/clamav.log
DEBUG: c->name = ARRAY(0x6638060), n = /var/log/clamav/freshclam.log
DEBUG: c->name = ARRAY(0x663bc38), n = /var/log/ConsoleKit/history
DEBUG: c->name = ARRAY(0x6636660), n = /home/daybyday.nl/logs/access_log
DEBUG: c->name = ARRAY(0x6636660), n = /home/daybyday.nl/logs/error_log
DEBUG: c->name = ARRAY(0x6638600), n = /var/log/dpkg.log
DEBUG: c->name = ARRAY(0x663b560), n = /var/log/alternatives.log
DEBUG: c->name = ARRAY(0x66363f0), n = /var/log/iptraf/*.log
DEBUG: c->name = ARRAY(0x66381b0), n = /var/log/knockd.log
DEBUG: c->name = ARRAY(0x6539eb8), n = /var/log/mysql/mysql.log
DEBUG: c->name = ARRAY(0x6539eb8), n = /var/log/mysql/mysql-slow.log
DEBUG: c->name = ARRAY(0x6539eb8), n = /var/log/mysql/error.log
DEBUG: c->name = ARRAY(0x64c6ef8), n = /var/log/pm-suspend.log
DEBUG: c->name = ARRAY(0x64c6ef8), n = /var/log/pm-powersave.log
DEBUG: c->name = ARRAY(0x66339b8), n = /var/log/postgresql/*.log
DEBUG: c->name = ARRAY(0x662f270), n = /var/log/ppp-connect-errors
DEBUG: c->name = ARRAY(0x66384e0), n = /var/log/razor-agent.log
DEBUG: c->name = ARRAY(0x663e6a0), n = /var/log/syslog
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/mail.info
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/mail.warn
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/mail.err
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/mail.log
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/daemon.log
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/kern.log
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/auth.log
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/user.log
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/lpr.log
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/cron.log
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/debug
DEBUG: c->name = ARRAY(0x65cc6c0), n = /var/log/messages
DEBUG: c->name = ARRAY(0x6636a38), n = /var/log/tinyproxy/tinyproxy.log
DEBUG: c->name = ARRAY(0x6631838), n = /var/log/tomcat7/catalina.out
DEBUG: c->name = ARRAY(0x662f888), n = /var/log/unattended-upgrades/unattended-upgrades.log
DEBUG: c->name = ARRAY(0x662f888), n = /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
DEBUG: c->name = ARRAY(0x662f888), n = /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
DEBUG: c->name = ARRAY(0x6631808), n = /var/log/vsftpd.log
DEBUG: c->name = ARRAY(0x6539f18), n = /var/log/wtmp
DEBUG: c->name = ARRAY(0x64d6b98), n = /var/log/btmp
DEBUG: tmpl->logrotate_shared yes
DEBUG: logdir /home/gerben.nl/logs
DEBUG: logs[0] /home/gerben.nl/logs/access_log, d->home /home/gerben.nl
DEBUG: did not set already = c :(
DEBUG: already = None
.. done
Updating Webmin user ..
.. done
.. done
Re-loading Webmin ..
.. done
I'm basically never reaching print "DEBUG shared yes\n"
. It looks to me as if this is only going to work for subservers, aliases and/or subdomains, but never between top-level servers, because it's comparing $logs[0]
with $d->{home}
in order to determine if it can add a rotate statement to a config block. That is never going to match the directory paths of any other top-level server.
And even if I comment out $logs[0] !~ /^\Q$d->{'home'}\E\//
, it is then going to traverse the &get_all_domain_logs($_[0])
array and try to find $logdir
there - which is also never going to match any other top-level server, so $always
stays None
and it's just going to add another config file.
Is that by design? Or perhaps it's happening because the logs are in a logs
subdir of $d->{'home'}
?
And is there anything that can be done to fix this?
Requesting a new certificate works fine.
Auto renewals do not work even if I click the Only Update Renewal button. The page refreshes but the certificate does not update. I do not get any emails either about the Certificate expiring.
Running /usr/local/etc/webmin/virtual-server/collectinfo.pl
returns
Use of uninitialized value $bind8::config{"pid_file"} in split at /usr/local/lib/webmin-1.890/bind8/bind8-lib.pl line 1676.
Use of uninitialized value $bind8::config{"pid_file"} in split at /usr/local/lib/webmin-1.890/bind8/bind8-lib.pl line 1676.
Use of uninitialized value $bind8::config{"pid_file"} in split at /usr/local/lib/webmin-1.890/bind8/bind8-lib.pl line 1676.
Use of uninitialized value $bind8::config{"pid_file"} in split at /usr/local/lib/webmin-1.890/bind8/bind8-lib.pl line 1676.
Which makes sense since I have 4 SSL sites on the server. I do not have BIND installed.
OS: 11.1-RELEASE-p11
Webmin: 1.890
Virtualmin: 6.03
Debian 8
php 5.6.33
phpfpm
Virtualmin 6 (upgraded from 5.99)
If I try to change the php execution mode from PHPFPM to FCGId I got a:
Changing PHP execution mode to FCGId (run as virtual server owner) ..
Failed to save website options : No PHP command found!
I suspect that the problem came up after the upgrade from 5.99 to 6. (I've done it updating the ATP repository).
I have tested on 3 domains before posting this as an issue. After new certificates are issued and downloaded - Apache is not restarted and certificates are not applied.
We discussed it here and you said that next release of Virtualmin will support CA bundle. It's still missing.
Hello,
I have setup my server template so at vhost creation it always create a certificate for the corresponding host also set the rewrite rules to point to the https page.
What I don't know and didn't manage to find out is does the auto renew parameter is set if yes what's the default timing for the auto-renewal?
Finally is there a way to find out either in the interface or in a config file if this parameter is set for a specific host ?
Thanks for the clarification
Matth
Steps to reproduce:
virtualmin.com
./root/backup-10.24.2017_16-47-37_cPanelUsername.tar.gz
).Show What Will Be Restored
.htop
for processes gzip
, cat
, tar
, and restore.cgi
.Connection reset
.EDIT: Exact error message is
Secure Connection Failed
The connection to the server was reset while the page was loading.
The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
Please contact the website owners to inform them of this problem.
``` #15
Steps to reproduce.
http://autoconfig.example.com/mail/[email protected]
http://autoconfig.example.com/cgi-bin/[email protected]
#!/usr/bin/perl
# This script gets copied to each domain's CGI directory to output the
# correct SMTP and IMAP server details.
# These variables get replaced when the script is copied
$OWNER = "";
$USER = 'example';
$SMTP_HOST = 'example.com';
$SMTP_PORT = '587';
$SMTP_TYPE = 'STARTTLS';
$SMTP_SSL = 'yes';
$SMTP_ENC = 'password-cleartext';
$IMAP_HOST = 'mail.example.com';
$IMAP_PORT = '993';
$IMAP_TYPE = 'SSL';
$IMAP_SSL = 'yes';
$IMAP_ENC = 'password-cleartext';
$PREFIX = 'example';
$STYLE = '0';
sub error_exit
{
print "Content-type: text/plain\n\n";
print @_,"\n";
exit(0);
}
# Get email address parameter
if ($ENV{'QUERY_STRING'} =~ /emailaddress=([^&]+)/) {
# Thunderbird style
$email = $1;
$email =~ s/%(..)/pack("c",hex($1))/ge;
($mailbox, $SMTP_DOMAIN) = split(/\@/, $email);
$mailbox && $SMTP_DOMAIN ||
&error_exit("emailaddress parameter is not in user@domain format");
}
elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
# Outlook style
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
$buf =~ /<EMailAddress>([^@<>]+)@([^<>]+)<\/EMailAddress>/i ||
&error_exit("EMailAddress missing from input XML");
($mailbox, $SMTP_DOMAIN) = ($1, $2);
$email = $1."\@".$2;
}
else {
&error_exit("Missing emailaddress parameter");
}
# Work out the full username
if ($mailbox eq $USER) {
# Domain owner, so no need for prefix
$SMTP_LOGIN = $USER;
}
elsif ($STYLE == 0) {
$SMTP_LOGIN = $mailbox.".".$PREFIX;
}
elsif ($STYLE == 1) {
$SMTP_LOGIN = $mailbox."-".$PREFIX;
}
elsif ($STYLE == 2) {
$SMTP_LOGIN = $PREFIX.".".$mailbox;
}
elsif ($STYLE == 3) {
$SMTP_LOGIN = $PREFIX."-".$mailbox;
}
elsif ($STYLE == 4) {
$SMTP_LOGIN = $mailbox."_".$PREFIX;
}
elsif ($STYLE == 5) {
$SMTP_LOGIN = $PREFIX."_".$mailbox;
}
elsif ($STYLE == 6) {
$SMTP_LOGIN = $email;
}
elsif ($STYLE == 7) {
$SMTP_LOGIN = $mailbox."\%".$PREFIX;
}
else {
&error_exit("Unknown style $STYLE");
}
$MAILBOX = $mailbox;
# Output the XML
print "Content-type: text/xml\n\n";
if ($ENV{'SCRIPT_NAME'} =~ /autodiscover.xml/i) {
# Outlook
print <<EOF;
<?xml version="1.0" encoding="utf-8" ?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
<Account>
<AccountType>email</AccountType>
<Action>settings</Action>
<Protocol>
<Type>IMAP</Type>
<TTL>24</TTL>
<Server>$IMAP_HOST</Server>
<Port>$IMAP_PORT</Port>
<LoginName>$SMTP_LOGIN</LoginName>
<DomainRequired>off</DomainRequired>
<SSL>$IMAP_SSL</SSL>
<AuthRequired>on</AuthRequired>
</Protocol>
<Protocol>
<Type>SMTP</Type>
<TTL>24</TTL>
<Server>$SMTP_HOST</Server>
<Port>$SMTP_PORT</Port>
<LoginName>$SMTP_LOGIN</LoginName>
<DomainRequired>off</DomainRequired>
<SSL>$SMTP_SSL</SSL>
<AuthRequired>on</AuthRequired>
</Protocol>
</Account>
</Response>
</Autodiscover>
EOF
}
else {
# Thunderbird
print <<EOF;
<?xml version="1.0" encoding="UTF-8"?>
<clientConfig version="1.1">
<emailProvider id="$SMTP_DOMAIN">
<domain>$SMTP_DOMAIN</domain>
<displayName>$OWNER Email</displayName>
<displayShortName>$OWNER</displayShortName>
<incomingServer type="imap">
<hostname>$IMAP_HOST</hostname>
<port>$IMAP_PORT</port>
<socketType>$IMAP_TYPE</socketType>
<authentication>$IMAP_ENC</authentication>
<username>$SMTP_LOGIN</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>$SMTP_HOST</hostname>
<port>$SMTP_PORT</port>
<socketType>$SMTP_TYPE</socketType>
<authentication>$SMTP_ENC</authentication>
<username>$SMTP_LOGIN</username>
</outgoingServer>
</emailProvider>
</clientConfig>
EOF
}
I can't seem to press Submit button with the latest virtualmin / webmin.
I'm using a bit old browser but not that old. Older version works but not the newer version. Any help?
Error
Failed to save enabled features : Suexec is enabled in the default template, but the suexec command was not found on your system.
16.04.
Installed is libapache2-mod-fcgid
.
Result of apachectl configtest
is Syntax OK
.
Goal is to have virtualmin use the lowest RAM/CPU resource consuming version of Apache 2.4 = PHP-FPM.
I tried to create a backup by visiting "Backup Virtual Servers" and selecting "Servers to save -> only selected", choose only 1 domain, with "Include sub-servers of those selected?" unchecked and also selected "Backup Format ->One file per server"
Starting backup of 1 domains to local file /root/backups/xxxx.tar.gz ..
Cannot backup multiple domains to /root/backups/xxxx.tar.gz, as it is not a directory
Backup failed! See the progress output above for the reason why.
I know that i had to select "Single archive file from Backup Format" to get it done but I just wanted to let you know about the funny error message :D
Using Debian 8 Jessie, install GPL:
1. Webmin version 1.881
1. Usermin version 1.741
1. Virtualmin version 6.02
Using Webmin, update from Authentic Theme 19.12 to 19.13
Using Webmin, go to /package-updates/index.cgi?mode=updates&xnavigation=1
Now updating webmin-virtual-server ..
Installing package(s) with command apt-get -y install webmin-virtual-server ..
Reading package lists...
Building dependency tree...Reading state information...
The following packages will be upgraded:
webmin-virtual-server1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2505 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://software.virtualmin.com/gpl/debian/ virtualmin-universal/main webmin-virtual-server all 6.03.gpl [2505 kB]
Fetched 1767 kB in 0s (22.8 MB/s)
E: Failed to fetch http://software.virtualmin.com/gpl/debian/dists/virtualmin-universal/main/binary-amd64/webmin-virtual-server_6.03.gpl_all.deb Size mismatchE: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
.. install failed!
No packages were installed. Check the messages above for the cause of the error.
Hello,
I tried to use the django script but it didn't work with V1.9.7, with the following error Your Virtualmin version does not support proxying
https://www.virtualmin.com/node/40287 seems to indicate that it is not supported anymore in GPL version
I still managed to use V1.7, but I wanted to know if there was any plan to support django again in the GPL version.
Moreover both V1.7 and 1.9 are not supported anymore (cf https://www.djangoproject.com/download/), thus the question : Is django still supported in virtualmin ?
Thanks in advance
Debian 9
Webmin 1.880 ( installed via apt)
Virtualmin 6.01 ( installed as a module from Webmin interface)
I have looked around to understand how i can safely update Virtualmin and I don't see any case fitting my situation.
First from the interface, the only info I have is that my Virtualmin version is too old, but nothing to perform the upgrade of the module.
I looked in Webmin Configuration > Webmin modules
but looking in Standard module from www.webmin.com
the Virtualmin package doesn't exist...
I found the Debian repository, but because the package was installed originally has a module I'm afraid to break everything going to that path for an upgrade..
From what i understand the install.sh
script his not design to perform upgrade has the script name stipulate :)
So from here what would be the best way to upgrade Virtualmin is it safe to switch to apt
even if it has been installed has a module ?
Is there another method I'm not aware of ?
Thanks for the clarification!
kind regards
Matth
In server template: "Reporting URI for forensic reports: mailto:postmaster@domain" and "Reporting URI for aggregate reports: mailto:postmaster@domain" is selected but the generated DNS record is missing "mailto:" in both options.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.