How To Install Virtualmin on Ubuntu 18.04 (LAMP Stack)

Do you want to know How to install Virtualmin on Ubuntu 18.04 Server? You have made the right choice! Since Virtualmin is one the best Open Source VPS Control Panel, managing your LAMP stack will be super easy. For this tutorial, I will assume that you already have a VPS running Ubuntu 18.04 and you have SSH root access to your VPS.

If you are using Google Cloud Platform then you can follow this tutorial to connect your Cloud Instance through SSH.

In this tutorial, you will learn

  1. Prepare Your VPS to Install Virtualmin
  2. Adding Ondřej Surý’s PHP & Ondřej Surý’s Apache Repository For Latest Version of PHP & Apache
  3. Tutorial: How to Install Virtualmin On Ubuntu 18.04 & Complete Initial Setup
  4. Virtualmin Post Installation Process

1. Preparing Ubuntu 18.04 to Install Virutalmin

In the first step, we will prepare our Ubuntu 18.04 VPS to Install Virtualmin. Once we are done with this step then, we can move on to How to install Virtualmin on Ubuntu 18.04 Server.

We will start by configuring the hostname for your VPS. For that, you will first need to choose an FQDN (Fully Qualified Domain Name) such as test.thetechpro.in. Once you have decided on a hostname for your VPS, we can now change the hostname of your VPS to your desired hostname. Once we are done with the basic nitty-gritty we will proceed further on How to Install Virtualmin on Ubuntu 18.04 Follow the steps mentioned below to change your hostname.

i. Run the following command to check the current hostname of your VPS.

[email protected]:~# hostname -f 

ii. Now to change the hostname you will need to use the hostnamectl command. In the following command replace test.thetechpro.in with your desired hostname.

[email protected]:~# hostnamectl set-hostname test.thetechpro.in

iii. Once you execute the command given below, you can now confirm your new hostname by running the hostnamectl command. You should get an output like this.

[email protected]:~# hostnamectl set-hostname test.thetechpro.in
[email protected]:~# hostnamectl
   Static hostname: test.thetechpro.in
         Icon name: computer-vm
           Chassis: vm
        Machine ID: e2e2e8dbad39728dd018a4fbfc338164
           Boot ID: 227f3d3761344482b76da24b5d6b5c1c
    Virtualization: kvm
  Operating System: Ubuntu 18.04.4 LTS
            Kernel: Linux 5.3.0-1030-gcp
      Architecture: x86-64

Once you have finished setting up the hostname of you Ubuntu 18.04 Server you should now reboot your system and then you are ready to proceed to the next step in this tutorial on How to Install Virtualmin on Ubuntu 18.04.

You can also check Install cURL 7.71.0 on Ubuntu 18.04 Server From Scratch

2. Adding Ondřej Surý’s PHP & Ondřej Surý’s Apache Repository For Latest Version of PHP & Apache

Ubuntu 18.04 ships with PHP 7.0 by default which is quite old and slow. The latest version of PHP is 7.4.7 which can be installed using the Ondřej Surý’s PHP repository. So before we proceed further in the tutorial on How to install Virtualmin on Ubuntu 18.04 we are going to make sure we use the latest packages.

To make sure that the Virtualmin LAMP stack we install has the latest versions of PHP and Apache use the commands given below and add the Ondřej Surý’s PHP repository to get the latest version of PHP. Then before we proceed further in the tutorial on How to install Virtualmin on Ubuntu 18.04 we will also add the Ondřej Surý’s Apache Repository which will provide us with the latest version of Apache.

i. Firstly you will need to install a package names software-properties-common which can be installed using the following command.

[email protected]:~# apt install software-properties-common

ii. Once you install the above mentioned package update apt cache.

[email protected]:~# apt update

iii. Now use the following command to add the Ondřej Surý’s PHP repository.

[email protected]:~# add-apt-repository ppa:ondrej/php

iv. Once you enter the command to add Ondřej Surý’s PHP repository you will get a prompt screen shown below. Now you can press ENTER to confirm adding Ondřej Surý’s PHP repository.

[email protected]:~# add-apt-repository ppa:ondrej/php
 Co-installable PHP versions: PHP 5.6, PHP 7.x and most requested extensions are included. Only Supported Versions of PHP (http://php.net/supported-versions.php) for Supported Ubuntu Releases (https://wiki.ubuntu.com/Releases) are provided. Don't ask for end-of-life PHP versions or Ubuntu release, they won't be provided.

Debian oldstable and stable packages are provided as well: https://deb.sury.org/#debian-dpa

You can get more information about the packages at https://deb.sury.org

BUGS&FEATURES: This PPA now has a issue tracker:
https://deb.sury.org/#bug-reporting

CAVEATS:
1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman
2. If you are using apache2, you are advised to add ppa:ondrej/apache2
3. If you are using nginx, you are advised to add ppa:ondrej/nginx-mainline
   or ppa:ondrej/nginx

PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/

WARNING: add-apt-repository is broken with non-UTF-8 locales, see
https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:

# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 More info: https://launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or Ctrl-c to cancel adding it.

v. Now once you have added the repository for installing the latest version of PHP you can add the Ondřej Surý’s Apache Repository to install the latest version of Apache. Press ENTER once you get the prompt screen for adding Ondřej Surý’s Apache Repository.

[email protected]:~# add-apt-repository ppa:ondrej/apache2
This branch follows latest Apache2 packages as maintained by the Debian Apache2 team with couple of compatibility patches on top.

It also includes some widely used Apache 2 modules (if you need some other feel free to send me a request).

BUGS&FEATURES: This PPA now has a issue tracker: https://deb.sury.org/#bug-reporting

PLEASE READ: If you like my work and want to give me a little motivation, please consider donating: https://deb.sury.org/#donate
 More info: https://launchpad.net/~ondrej/+archive/ubuntu/apache2
Press [ENTER] to continue or Ctrl-c to cancel adding it.

NOTE: We have only added the repositories for the latest versions of PHP and Apache. Once the repositories are added the latest versions of PHP and Apache will automatically install when we proceed on How to install Virtualmin on Ubuntu 18.04.

Now you are ready to install Virtualmin LAMP Stack on Ubuntu 18.04 LTS and you can proceed to the next section of the tutorial.

Tutorial: How to Install Virtualmin On Ubuntu 18.04 & Complete Initial Setup

Once all things are in place we are now ready to install Virtualmin LAMP Stack on our Ubuntu 18.04 Server. In this section, we will now proceed to download the Virtualmin Install script. Follow these commands to proceed with the tutorial on How to Install Virtualmin on Ubuntu 18.04.

i. Firstly download the Virtualmin install script using wget.

[email protected]:~# wget http://software.virtualmin.com/gpl/scripts/install.sh
[email protected]:~# sudo /bin/sh install.sh

ii. Once you execute the above command the script will start the installation process for Virtualmin with default options. Once it checks the system it will show a warning message showing the list of supported OS. Enter y and then the installation will proceed.

[email protected]:~# sudo /bin/sh install.sh
2020-07-23 02:59:03 URL:https://software.virtualmin.com/lib/slib.sh [22148/22148] -> "slib.sh" [1]

  Welcome to the Virtualmin GPL installer, version 6.2.0

  This script must be run on a freshly installed supported OS. It does not
  perform updates or upgrades (use your system package manager) or license
  changes (use the "virtualmin change-license" command).

  The systems currently supported by install.sh are:

    CentOS/RHEL Linux 6, 7, and 8 on x86_64
    Debian 8, 9, and 10 on i386 and amd64
    Ubuntu 16.04 LTS, 18.04 LTS, and 20.04 LTS on i386 and amd64

  If your OS/version/arch is not listed, installation will fail. More
  details about the systems supported by the script can be found here:

    https://www.virtualmin.com/os-support

  The selected package bundle is LAMP and the size of install is
  full. It will require up to 650 MB of disk space.

  Exit and re-run this script with --help flag to see available options.

 Continue? (y/n) y

iii. After the installation is complete you will get an output like this which confirms that you have successfully installed Virtualmin LAMP stack on your VPS.

[INFO] Started installation log in /root/virtualmin-install.log

▣□□ Phase 1 of 3: Setup
Downloading RPM-GPG-KEY-virtualmin-6                                    [  ✔  ]
Downloading RPM-GPG-KEY-webmin                                          [  ✔  ]
Installing Virtualmin 6 key                                             [  ✔  ]
Installing Webmin key                                                   [  ✔  ]
Updating apt metadata                                                   [  ✔  ]
Downloading repository metadata                                         [  ✔  ]
Enabling universe repositories, if not already available                [  ✔  ]
Disabling cdrom: repositories                                           [  ✔  ]
Cleaning out old metadata                                               [  ✔  ]

▣▣□ Phase 2 of 3: Installation
Installing Webmin                                                       [  ✔  ]
Installing Usermin                                                      [  ✔  ]
Installing fail2ban                                                     [  ✔  ]
Removing nginx (if installed) before LAMP installation.                 [  ✔  ]
Removing unneeded packages that could confict with LAMP stack.          [  ✔  ]
Installing postfix                                                      [  ✔  ]
Installing virtualmin-lamp-stack                                        [  ✔  ]
Installing Virtualmin and plugins                                       [  ✔  ]
23 Jul 03:06:59 ntpdate[31988]: adjust time server 91.189.91.157 offset -0.000510 sec
Installing updates to Virtualmin-related packages                       [  ✔  ]

▣▣▣ Phase 3 of 3: Configuration
[1/23] Configuring AWStats                                              [  ✔  ]
[2/23] Configuring Apache                                               [  ✔  ]
[3/23] Configuring Bind                                                 [  ✔  ]
[4/23] Configuring ClamAV                                               [  ✔  ]
[5/23] Configuring Dovecot                                              [  ✔  ]
[6/23] Configuring Firewalld                                            [  ✔  ]
[7/23] Configuring MySQL                                                [  ✔  ]
[8/23] Configuring NTP                                                  [  ✔  ]
[9/23] Configuring Net                                                  [  ✔  ]
[10/23] Configuring ProFTPd                                             [  ✔  ]
[11/23] Configuring Procmail                                            [  ✔  ]
[12/23] Configuring Quotas                                              [  ✔  ]
[13/23] Configuring SASL                                                [  ✔  ]
[14/23] Configuring Shells                                              [  ✔  ]
[15/23] Configuring SpamAssassin                                        [  ✔  ]
[16/23] Configuring Status                                              [  ✔  ]
[17/23] Configuring Upgrade                                             [  ✔  ]
[18/23] Configuring Usermin                                             [  ✔  ]
[19/23] Configuring Webalizer                                           [  ✔  ]
[20/23] Configuring Webmin                                              [  ✔  ]
[21/23] Configuring Fail2banFirewalld                                   [  ✔  ]
[22/23] Configuring Postfix                                             [  ✔  ]
[23/23] Configuring Virtualmin                                          [  ✔  ]
▣▣▣ Cleaning up

[SUCCESS] Installation Complete!
[SUCCESS] If there were no errors above, Virtualmin should be ready
[SUCCESS] to configure at https://test.thetechpro.in:10000 (or https://10.128.0.29:10000).
[SUCCESS] You'll receive a security warning in your browser on your first visit.

The above screen confirms that we have successfully installed Virutalmin LAMP Stack on Ubuntu 18.04 Server. Now we can move to the browser to complete the Virtualmin Post Installation Process.

Now before proceeding further if you haven’t already set up your root password you need to do it now. If you have already set a password for your root account then you can surely skip this step. Otherwise, follow along to set the password for your root account.

[email protected]:~# passwd

You can access Virtualmin over port 10000 on the External IP Address of your VPS or your domain. Since we want access Virtualmin Control Panel over our domain which we also selected as our hostname, we will need to add some DNS records for our domain.

You can visit your domain registrar and add the following record to the DNS configuration of your domain.

Once the DNS records are in place you will be able to access the Virtualmin Control Panel over your domain at port 10000.

Complete Virtualmin Post Installation Process

Now you are at the final step of completing this tutorial on How to Install Virtualmin on Ubuntu 18.04. Once you are able to access the Virtualmin Control Panel over your domain at port 10000 we are now ready to proceed with the Virtualmin Post Installation process.

In my case, the URL to access Virtualmin Control Pannel will be https://test.thechpro.in:10000 Make sure you use HTTPS instead of HTTP while accessing the Virtualmin Control Panel.

Once you enter the URL in your browser you will receive a security warning saying your connection isn’t secure. For the time being, we complete the Virtualmin Post Installation process you can ignore this warning and still proceed to the Webmin Login page.

How-to-Install-Virtualmin-on-Ubuntu-18.04-1

Once you have logged in we can now proceed withe the Virutalmin Post Installation Process. You can leave most of these settings at default but I prefer to make the changes mentioned below.

1. You can say Yes to Preload Virtualmin Libraries which will make the Virtualmin UI load faster and say No to Run email domain lookup server which will save CPU and RAM if you will not be hosting an email server on your VPS. In case you plan to host an email server then you can leave the second option unchanged and press Next.

2. Since I will not be hosting an Email server, I don’t need the ClamAV Virus Scanning feature so its better turn of ClamAV for smoother performance. In case you are hosting an Email Server, you can leave the option unchanged and press Next.

3. On the next page leave both options Run MariaDB/MySQL database server and Run PostgreSQL database server unchanged and click on the Next button.

4. On the next page set your MySQL password for root user.

On the MariaDB/MySQL Database Size configuration page choose the MariaDB/MySQL Database Size according to the amount of RAM available on your VPS.

6. Although Virtualmin offers the functionality to use the server as a name-server, I recommend using the nameservers of your Domain Provider or use Cloudflare due to a lot of its advantages over setting up your own vanity nameservers using Virtualmin.

On the DNS Configuration page check Skip check for resolvability check box and proceed by clicking the next button.

7. On the next page check the Only Store Hashed Passwords Option for better security and click next.

Once the Virtualmin Post Installation process is complete click the Recheck and refresh Configuration button to complete the initial setup and start using Virtualmin.

On the completion of the Recheck Virtualmin Configuration process, you will get a page like this.

In case you have any kind of errors on this page then you can comment them below. I will try to reply and solve your queries ASAP.

Now you have successfully Installed and Configured your Virutalmin LAMP Stack and you have successfully finished this tutorial on How to Install Virtualmin on Ubuntu 18.04.

You can now set up a new Virutalsever in Virtualmin and add your domains and host multiple websites on your Ubuntu 18.04 Server.

That’s it

If you have any kind of questions, doubts, or comments about How to Install Virtualmin on Ubuntu 18.04, make sure you post them below. I will try to reply to them ASAP ❤

Thanks

12 thoughts on “How To Install Virtualmin on Ubuntu 18.04 (LAMP Stack)”

  1. First of all I want to say awesome blog! I had a quick question in which I’d like
    to ask if you don’t mind. I was curious to find out how you center yourself
    and clear your thoughts before writing. I have had difficulty clearing my thoughts in getting my ideas out there.

    I truly do take pleasure in writing but it just seems like the first 10 to 15 minutes are
    lost just trying to figure out how to begin. Any recommendations
    or hints? Many thanks!

    Reply
    • Hi หวย, I am really happy that you find my blog helpful.

      What I would like to advice you is that find a peaceful time preferably early morning and before starting make sure that you draft the article.

      I hope it helps!!

      Reply
  2. It’s really a cool and helpful piece of information. I’m satisfied that you simply shared this useful info with us.

    Please keep us informed like this. Thank you for sharing.

    Reply
  3. You made some decent points there. I checked on the internet for additional information about the issue and found
    most individuals will go along with your views on this website.

    Reply
  4. Hello everyone, it’s my first pay a quick visit at this web page, and article is truly fruitful
    in favor of me, keep up posting such posts.

    Reply
  5. I really like your blog.. very nice colors & theme.

    Did you design this website yourself or did you hire
    someone to do it for you? Plz respond as I’m looking to construct my own blog and would like to
    know where u got this from. thanks a lot

    Reply
    • It is a custom theme and I designed it myself!
      Good luck for you blog. A big thanks to you Ramsey for commenting down your thoughts. I am really glad that you find my article helpful!!

      Reply
  6. This is really fascinating, You are an excessively
    skilled blogger. I have joined your feed and look ahead to searching for more of your magnificent post.
    Additionally, I’ve shared your website in my social networks

    Reply

Leave a Comment