Virtualmin Install on AlmaLinux 8.3RC

Operating system: AlmaLinux
OS version: 8.3RC

I figured I may as well make this a new topic since the other one was more about the CentOS > AlmaLinux Migration, which didn’t work out as well as I’d hoped.

For this installation I wiped the little server and installed AlmLinux 8.3 RC directly, then immediately installed Virtualmin using the installer I hacked and referenced in the other thread. I’ll upload it somewhere if anyone else wants to play.

The only errors in the install log:

warning: virtualmin-release-latest.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 60d62a6b: NOKEY
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Resource temporarily unavailable)
error: /etc/pki/rpm-gpg/RPM-GPG-KEY-webmin: key 1 import failed.
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Resource temporarily unavailable)
error: /etc/pki/rpm-gpg/RPM-GPG-KEY-virtualmin: key 1 import failed.
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Resource temporarily unavailable)
error: /etc/pki/rpm-gpg/RPM-GPG-KEY-virtualmin-6: key 1 import failed.

Everything installed properly and the post-install configuration was successful.

However, there’s still the quirk with Apache showing up on the dashboard, although it is running (and presumably working because the preview function works).

[root@almalinux ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
   Active: active (running) since Thu 2021-03-11 19:34:50 EST; 2min 12s ago
     Docs: man:httpd.service(8)
 Main PID: 12795 (httpd)
   Status: "Total requests: 1; Idle/Busy workers 100/0;Requests/sec: 0.00775; Bytes served/sec: 7.5KB/sec"
    Tasks: 214 (limit: 47360)
   Memory: 52.3M
   CGroup: /system.slice/httpd.service
           ├─12795 /usr/sbin/httpd -DFOREGROUND
           ├─12796 /usr/sbin/httpd -DFOREGROUND
           ├─12797 /usr/sbin/httpd -DFOREGROUND
           ├─12798 /usr/sbin/httpd -DFOREGROUND
           ├─12799 /usr/sbin/httpd -DFOREGROUND
           └─12800 /usr/sbin/httpd -DFOREGROUND

Mar 11 19:34:50 almalinux.lan systemd[1]: Starting The Apache HTTP Server...
Mar 11 19:34:50 almalinux.lan systemd[1]: Started The Apache HTTP Server.
Mar 11 19:34:50 almalinux.lan httpd[12795]: Server configured, listening on: port 443, port 80

So I have to figure out what that’s all about. Probably some stupid error on my part. Or maybe AlmaLinux installs a different Apache than what VM was expecting.

Nonetheless, this is promising. I still have to puzzle over the Apache indicator, but at least the system installed without barfing and seems to work, even if it doesn’t necessarily know that it’s working.


Some screenshots and another quirk.

On the next one, note that it has Apache as stopped, MySQL running, and properly identifies the Apache version




So there are some quirks to work out. I think all I have to do to fix the MySQL glitch is change the start and stop commands. The Apache glitch is more puzzling.


Also of possible interest:

[root@almalinux ~]# yum -v repolist
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
YUM version: 4.2.23
cachedir: /var/cache/dnf
Last metadata expiration check: 3:44:59 ago on Thu 11 Mar 2021 07:38:17 PM EST.
Repo-id            : appstream
Repo-name          : AlmaLinux 8 - AppStream
Repo-revision      : 1615387279
Repo-updated       : Wed 10 Mar 2021 09:41:19 AM EST
Repo-pkgs          : 5,998
Repo-available-pkgs: 5,105
Repo-size          : 7.2 G
Repo-mirrors       :
Repo-baseurl       : (43 more)
Repo-expire        : 172,800 second(s) (last: Thu 11 Mar 2021 07:38:03 PM EST)
Repo-filename      : /etc/yum.repos.d/almalinux.repo

Repo-id            : baseos
Repo-name          : AlmaLinux 8 - BaseOS
Repo-revision      : 1615387290
Repo-updated       : Wed 10 Mar 2021 09:41:30 AM EST
Repo-pkgs          : 1,780
Repo-available-pkgs: 1,775
Repo-size          : 1.4 G
Repo-mirrors       :
Repo-baseurl       : (43 more)
Repo-expire        : 172,800 second(s) (last: Thu 11 Mar 2021 07:38:01 PM EST)
Repo-filename      : /etc/yum.repos.d/almalinux.repo

Repo-id            : epel
Repo-name          : Extra Packages for Enterprise Linux 8 - x86_64
Repo-revision      : 1615411979
Repo-updated       : Wed 10 Mar 2021 04:33:30 PM EST
Repo-pkgs          : 7,059
Repo-available-pkgs: 7,056
Repo-size          : 9.9 G
Repo-metalink      :
  Updated          : Thu 11 Mar 2021 07:38:10 PM EST
Repo-baseurl       : (77 more)
Repo-expire        : 172,800 second(s) (last: Thu 11 Mar 2021 07:38:10 PM EST)
Repo-filename      : /etc/yum.repos.d/epel.repo

Repo-id            : epel-modular
Repo-name          : Extra Packages for Enterprise Linux Modular 8 - x86_64
Repo-revision      : 1614888933
Repo-updated       : Thu 04 Mar 2021 03:15:46 PM EST
Repo-pkgs          : 120
Repo-available-pkgs: 0
Repo-size          : 407 M
Repo-metalink      :
  Updated          : Thu 11 Mar 2021 07:38:08 PM EST
Repo-baseurl       : (106 more)
Repo-expire        : 172,800 second(s) (last: Thu 11 Mar 2021 07:38:08 PM EST)
Repo-filename      : /etc/yum.repos.d/epel-modular.repo

Repo-id            : extras
Repo-name          : AlmaLinux 8 - Extras
Repo-revision      : 8.3
Repo-distro-tags      : [cpe:/o:almalinux:almalinux:8]:  , 8, A, L, a, i, l, m, n, u, x
Repo-updated       : Fri 19 Feb 2021 05:09:59 AM EST
Repo-pkgs          : 1
Repo-available-pkgs: 1
Repo-size          : 22 k
Repo-mirrors       :
Repo-baseurl       : (43 more)
Repo-expire        : 172,800 second(s) (last: Thu 11 Mar 2021 07:38:06 PM EST)
Repo-filename      : /etc/yum.repos.d/almalinux.repo

Repo-id            : powertools
Repo-name          : AlmaLinux 8 - PowerTools
Repo-revision      : 1615303293
Repo-updated       : Tue 09 Mar 2021 10:21:33 AM EST
Repo-pkgs          : 2,070
Repo-available-pkgs: 1,484
Repo-size          : 1.1 G
Repo-mirrors       :
Repo-baseurl       : (43 more)
Repo-expire        : 172,800 second(s) (last: Thu 11 Mar 2021 07:38:05 PM EST)
Repo-filename      : /etc/yum.repos.d/almalinux.repo

Repo-id            : virtualmin
Repo-name          : RHEL/CentOS 8 - x86_64 - Virtualmin
Repo-revision      : 1615443247
Repo-updated       : Thu 11 Mar 2021 01:14:09 AM EST
Repo-pkgs          : 24
Repo-available-pkgs: 24
Repo-size          : 8.0 M
Repo-baseurl       :
Repo-expire        : 172,800 second(s) (last: Thu 11 Mar 2021 07:38:16 PM EST)
Repo-filename      : /etc/yum.repos.d/virtualmin.repo

Repo-id            : virtualmin-universal
Repo-name          : Virtualmin Distribution Neutral Packages
Repo-revision      : 1615443230
Repo-updated       : Thu 11 Mar 2021 01:13:55 AM EST
Repo-pkgs          : 69
Repo-available-pkgs: 69
Repo-size          : 184 M
Repo-baseurl       :
Repo-expire        : 172,800 second(s) (last: Thu 11 Mar 2021 07:38:17 PM EST)
Repo-filename      : /etc/yum.repos.d/virtualmin.repo
Total packages: 17,121
[root@almalinux ~]#

I upgraded the RAM in the ThinkCentre and slapped a brand-new, faster SSD in there while I had it open, and basically did a bare-metal install simulating the way I would do it on a production server if I had to do it today at gunpoint. The sequence was:

Installed CentOS 8.3
Rebooted into CentOS

Checked for OS Updates
yum update
none found

Shutdown server and removed keyboard / mouse / monitor
Started server and logged in via SSH

Installed wget
dnf install wget

Installed Virtualmin with defaults

Rebooted server

Completed Virtualmin Post-Installation
Ran EPEL update identified by Virtualmin

Installed additional PHP versions
dnf -y install && dnf clean all
dnf -y install php73-php-{cli,pdo,fpm,zip,gd,xml,mysqlnd,opcache}
dnf -y install php74-php-{cli,pdo,fpm,zip,gd,xml,mysqlnd,opcache}
dnf -y install php80-php-{cli,pdo,fpm,zip,gd,xml,mysqlnd,opcache}

Installed ImageMagick
dnf -y install php72-php-pecl-imagick-devel.x86_64 php73-php-pecl-imagick-devel.x86_64 php74-php-pecl-imagick-devel.x86_64 php80-php-pecl-imagick-devel.x86_64

Enabled and started PHP-FPM for 7.3, 7.4, 8.0 in Webmin > System > Bootup and Shutdown

Installed CSF Firewall
curl -SL | tar -xzf -
cd csf

Installed CSF Webmin Module
Webmin > Webmin Configuration > Webmin Modules > Install
From local file /usr/local/csf/csfwebmin.tgz

Restarted Webmin
systemctl restart webmin

Refreshed Modules
Webmin > Refresh Modules

Stopped and Disabled fail2ban and firewalld
systemctl stop firewalld
systemctl stop fail2ban
systemctl disable firewalld
systemctl disable fail2ban

Performed preliminary CSF configuration (opened ports 10000, 20000) and took out of testing mode.

Updated Postfix to latest stable
dnf --nogpg install
yum shell --enablerepo=gf-plus
> remove postfix*
> install postfix3 postfix3-ldap postfix3-mysql postfix3-pcre
[ allowed packages to install ]
> quit

systemctl restart postix Caused error: fatal: no Postfix shared-library directory /usr/lib64/postfix

Kludge to /etc/postfix/ (set shlib to /usr/lib/postfix). Will fix later.

Started and enabled Postfix
systemctl start postfix – success
systemctl enable postfix

Restarted server to test enabled services – all started successfully

Migrated to AlmaLinux
curl -O

Migration completed without errors
Rebooted server – success – all services started properly

Installed various utilities
dnf install htop iotop nano nmon

Installed various monitors
dnf install smartmontools lm_sensors.x86_64 lm_sensors-sensord.x86_64
(ran scans)

And that’s as far as I got. Some screenshots:

A couple of discrepancies:

Postfix path to shlib had to be changed. I probably should have just symlinked it.
Postfix shows wrong version on Virtualmin. There’s a file somewhere I have to edit manually.

So basically, no surprises. I’ll do some migrations and the like tomorrow or over the weekend, and probably write a script to run on another machine to call up Web pages on a more-or-less constant basis.

As it stands now, I’m comfortable enough with this that if I had to set up a LAMP server today at gunpoint, this is how I’d do it, except that I’d buy Virtualmin Pro.

The next step will likely be leasing a VPS to do some live testing, assuming that I decide to use AlmaLinux as my CentOS replacement. I still want to spin up Rocky Linux when it’s released and repeat the tests.



That seems wrong. Presumably a bug in the upstream. You shouldn’t have to do anything weird like that (regardless of Virtualmin).

Well, I used a different repo (Ghetto Forge) for the new installation. CentOS 8 ships with 3.3.1. Also, I didn’t completely backup and remove Postfix (including; so it may have appended to rather than replacing it. I’ll do some more research to determine what the actual Postfix default should be.

I may try completely removing it and doing it again.

The kludge was simple: comment out shlib_directory = /usr/lib64/postfix and add shlib_directory = /usr/lib/postfix near 738 in A symlink probably would have worked, too. I’ll play with it for a while when I have time.

Still, it’s pretty gratifying that that was the only error the whole process spit out.


Just some non-update updates for those who are interested. They’re non-updates because they’ve been non-events.

All cPanel sites I’ve test-migrated (including one fairly big one at about 100GB) migrated without errors. Mail filters created in cPanel, however don’t seem to migrate (or at least I haven’t found them yet if they do).

The Virtualmin backups made on CentOS 7.9 migrated to Virtualmin on AlmaLinux 8.3 with an error that is not distro-specific, that’s easily fixed, and that Jamie is aware of and working on.

Migration / upgrading of sites using PHP 7.x to use PHP 8.0 works fine.

Migration of MySQL-dependent sites works fine.

Updates work fine using the AlmaLinux repos.

So basically I have little to report, which is good news in a case like this.



This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.