I was working on setting up a new Managed VPS for a client today. The setup was almost complete. I just needed to setup daily backups to S3 to finish it up. But I ran into following error when I tried to add my AWS access key and secret key to Virtualmin using the function located at Virtualmin > Backup and Restore > Backup Virtual Servers.
Backup failed : The Perl module S3::AWSAuthConnection needed to communicate with Amazon's S3 service is not installed.
So I started Googling and landed on 5-6 Virtualmin support tickets. Even though some of them were marked as "FIXED", none of them had a solution. So I started digging and found that Webmin suggested perl module Authen::Libwrap wasn't installed. I tried to install it using Webmin built in function at Webmin > Others > Perl Modules > Install Module and ran into this error.
Error: Function definition too short '/ * EOF * /' in Libwrap.xs, line 32
I SSH'd into VPS and installed Authen::Libwrap module manually with following commands.
apt install build-essential gcc libc6-dev libwrap0 libwrap0-dev
cpan ExtUtils::MakeMaker
cpan Authen::Libwrap
Doing so fixed the S3::AWSAuthConnection error and I was able to schedule backup to my S2 account. I then tried to run my first backup and hit another wall.
HTTP/1.0 500 Perl execution failed Server: MiniServ/1.900 Date: Thu, 11 Jul 2019 02:41:31 GMT Content-type: text/html; Charset=iso-8859-1 Connection: close
Error - Perl execution failed
File does not exist: LWP will support https URLs if the LWP::Protocol::https module is installed. at S3/ListBucketResponse.pm line 26.
But this was fairly simple as the error message was very specific. I needed to install LWP::Protocol::https module. I did so using following command.
cpan LWP::Protocol::https
This finally put an end to the whole backup problem.
More than 4 months after the initial struggle with Virtualmin AWS S3 backups, I came across it again today. This time a slightly different error,
The Perl module XML::Simple needed to communicate with Amazon's S3 service is not installed
The first thing I tried was to install all the missing packages from the first post. But it didn't made a difference. Rightly so. But I did it anyway because they are also required for S3 backups to work. And then I installed XML::Simple using cpan.
cpan XML::Simple
It didn't help either. But installing libxml-simple-perl package with apt did the trick.
apt install libxml-simple-perl
This thread now covered two Virtualmin S3 errors and fixes. Leave a reply if your errors is different from those mentioned here.