Virtualmin GPL is a free and open source powerful and flexible web hosting control panel for Linux machine based on the well-known web based application named Webmin. Virtualmin is a uniquely powerful and flexible web server administration tool. It is unmatched in features and ease of use. It offers a wide range of tools for hosting providers, web developers, web designers, and end users. There are two different editions in which we can get our Virtualmin application running, one is under Professional in which we'll need to buy license and another is under GPL edition which is free and open source. Here are some of the features responsible for making Virtualmin one of the top Web Based Hosting Control Panel.
- Virtualmin has a beautiful easy to use user interface with a well managed menu.
- It respects the user freedom as its pretty flexible and can be customized easily to everything according to the user's choice.
- The responsive design of its interface makes it easily accessible from any device which helps us to perform server tasks easily from anywhere.
- It has the ability to send SMS message if any problem arises before the user recognizes.
- It is pretty comprehensive as we can manage and run almost everything out of the box necessary to manage a web hosting server including emails, spams, network configurations, firewalls, databases, users and groups, system logs and statups, file managers filesystems, quotas, software packages, and many more .
Here are some easy steps to setup Virtualmin in a machine running CentOS 7 distribution of linux.
Before we hurry up for the installation of Virtualmin, we'll need to make sure that our system will support Virtualmin and will run with its full performance. To install and run Virtualmin, we'll require a machine having at least 1 GB RAM. If you have a machine with RAM less than 3GB memory size, then it is recommended to run 32 bit of linux distribution with 32 bit package of Virtualmin. It is highly recommeneded to setup Virtualmin in a freshly installed server in order to prevent conflicts. After the sytem requirements are fulfilled, we'll need to set the hostname of our machine to a fully qualified domain name.
To see the currently set hostname, we'll need to run the following command.
# hostname -f
And in order to change the hostname of our machine to a valid FQDN, we'll need to run the following command.
# hostname panel.linoxide.com
Updating the System
Once our system requirement has been checked and fulfilled, we'll go further towards the installation of Virtualmin in our machine. We'll first make sure that we have the latest software packages installed in our CentOS 7 machine, do update all the packages to the latest and stable versions, we'll need to run the following command under root or sudo access.
# yum update
VirtualMin can be installed in many ways but as we are running CentOS 7, it is pretty easy for us to setup in a clean machine. We can setup using an automated script which will automatically install every dependencies and packages. To do so, first we'll need to download the script file of VirtualMin using wget.
# wget http://software.virtualmin.com/gpl/scripts/install.sh -O /tmp/virtualmin-install.sh
--2015-11-20 05:32:30-- http://software.virtualmin.com/gpl/scripts/install.sh
Resolving software.virtualmin.com (software.virtualmin.com)... 188.8.131.52
Connecting to software.virtualmin.com (software.virtualmin.com)|184.108.40.206|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 47633 (47K) [application/x-sh] Saving to: ‘/tmp/virtualmin-install.sh’
100%[=========================================>] 47,633 114KB/s in 0.4s
2015-11-20 05:32:31 (114 KB/s) - ‘/tmp/virtualmin-install.sh’ saved [47633/47633]
Here, the script file named install.sh is downloaded from the official download server http://software.virtualmin.com/gpl/ using wget and is saved under /tmp/ directory as virtualmin-install.sh
Running the VirtualMin script
After the VirtualMin script has been downloaded successfully, we'll go for the execution of the script file. To do so, first we'll need to make the script file executable by running the following chmod command.
# chmod +x /tmp/virtualmin-install.sh
Once the file is made executable, we'll go further towards running it using a shell. Here, we'll run it using sh as shown below.
# sh /tmp/virtualmin-install.sh
Doing this will start the Virtualmin installation wizard. It will prompt a license agreement, to continue the installation, we'll need to press Y followed by Enter . The installer script will start performing several checks and installing the required components.
As CentOS 7 is shipped with systemd as the default init system, firewalld is installed in most machines as a firewall solution. We'll configure the firewall program to allow port 10000 to expose out of the box. This will make VirtualMin accessible within the connected network. To allow port 10000 from the firewall, we'll need to run the following command.
# firewall-cmd --permanent --zone=public --add-port=10000/tcp
# firewall-cmd --reload
As our virtualmin has been successfully installed and the port 10000 is allowed to expose by the firewall program, we'll point our web browser to our server as https://ip-address:10000 or https://domain.com:10000 according to the system configuration. Here, according to our configuration, we'll point our web browser to https://panel.linoxide.com:10000. This will display some warning regarding SSL certificate as we have installed virtualmin under a self-signed SSL certifications. As we're running Google Chrome browser, we'll see the below warnings, we'll simply ignore it and continue it by clicking on Advanced button. After that, we'll simply click on Proceed to panel.linoxide.com (unsafe) to continue to the VirtualMin login page.
Next, we'll need to enter the root username and password which is same as of the linux system's to get access to the Web based Control Panel of VirtualMin.
After we have entered the login details, we'll click on Login button which will load the Dashboard with the Post Installation Wizard interface.
We'll now click on Next in order to continue the post installation wizard which is essential in order to configure different packages and elements of VirtualMin for better performance. Here, we'll go through the wizard in which we'll need to select the required option we want to setup VirtualMin with. While configuring or running a service, we'll need to keep in mind if our RAM has the capacity to handle those service properly or not in order to ensure the quality of the server. Here, we'll choose Yes to both Preload Virtualmin libraries and Run email domain lookup server for improving the Virtualmin UI and mail processing speed respectively.
Then, we'll click Next and continue further towards the Virus Scanning section. Here, as we want our mail processing to be fast, we'll select Yes to run ClamAV server scanner.
We'll also enable SpamAssassin server filter in order to filter the unwanted spam messages coming through the emails from the internet.
After that, we'll go for the selection of database server to run with Virtualmin. As MySQL server is widely used and supported by most applications, we'll simply select Yes to MySQL and select No to PostgreSQL database server.
We'll now need to set the root password for the MySQL server which will be used to access the MySQL Database server. Here, we'll set the password for the root user as Pa$$worD123 .
Next, we'll be navigated to MySQL database size page where we'll need to select the MySQL configuration size, here we'll select Large System (1G) after that, we'll need to set a resolvable nameserver in the next page.
Then, we'll be asked to choose the Password Storage Mode, we'll choose Only store hashed passwords for security concerns.
After done, we'll see that our Virtualmin configuration was completed, to continue into the dashboard, we'll need to click Next. Finally, after everything is done, we'll be able to access our fully configured Virtualmin Control Panel.
Finally, we have successfully installed VirtualMin web based control panel in our machine running CentOS 7 as operating system. Now, we can easily manage our VPS, multiple websites, clusters, applications, servers, daemons and the whole system. Really, Virtualmin has made it possible to manage and administer our servers out of the box from any device from anywhere around the world. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you !