Webmin is a convenient way to administer a computer across the Internet. You add Usermin and Virtualmin to administer Web sites. This page is an outline of an installation of Webmin, Usermin, and Virtualmin under CentOS for use on a Web development machine.
Update Dec 2010: I decided to drop CentOS and Use Ubuntu because all my other Linux work is on Ubuntu or Debian. There is very little difference and it is enough to be annoying. If Webmin fails on Ubuntu then Webmin needs fixing because the Ubuntu/Debian mixture is outpacing the Red Hat Linux that CentOS is based on. Perhaps Red Hat based Fedora is the compromise between using Webmin and using an up to date Linux.
You can download Webmin, Usermin, and Virtualmin from http://www.webmin.com. Webmin is free, open source, and there is only one limitation, should you want to extend Webmin, Webmin is written in ancient hieroglyphics named Perl. A modern version written in PHP would be so easy to extend and integrate within other Web applications and Web sites.
You install Webmin first. Webmin requires Perl and Perl is installed by most Linux distributions because many administration utilities are written in Perl. Read more about Webin in Webmin.
1.520 is the current version.
For our use, we also need Virtualmin. Virtualmin provides Web site management similar to cPanel. Use Virtualmin to define the settings in the Apache configuration file.
We need Usermin to define accounts for other users of Webmin. Webmin lets you plug in a lot of different modules and you want to restrict some of them to individual users. Typically you want to define a user that can access only one Web site, the Web site they work on. You want to give the user control over their email and a bunch of other things. You do not want that user accessing anything on the server that does not belong to them. This is another area where you would use cPanel on a typical Web hosting account.
The Webmin page talks about downloading files and getting files from repositories. All 1960s DOS command line stuff that hangs around in the Unix world. There is an easier way.
Go to the Linux menu bar. Select Applications then Add/Remove Software. This starts the Package Manager.
In the Package Manager, select edit then Repositories then Add.
Copy the Webmin repository name,
Webmin Distribution Neutral, from the Webmin installation page to the Name field in the Add New Repository form.
Copy the base URL,
http://download.webmin.com/download/yum, from the installation page to the Location field.
Add a description. I used
Webmin, Usermin, and Virtualmin.
You now can search for Webmin using the Package Manager search form.
Select the latest version of Webmin.
Select Package Details. You will see a description similar to the following.
A web-based administration interface for Unix systems. Using Webmin you can configure DNS, Samba, NFS, local/remote filesystems and more using your web browser.
After installation, enter the URL http://localhost:10000/ into your browser and login as root with your root password.
Log in to Webmin
On the home page you get a status summary and a big menu on the left. Here is the menu:
- Backup Configuration Files
- Change Language and Theme
- Webmin Actions Log
- Webmin Configuration
- Webmin Servers Index
- Webmin Users
- Bootup and Shutdown
- Change Passwords
- Disk Quotas
- Disk and Network Filesystems
- Filesystem Backup
- Initial System Bootup
- LDAP Client
- LDAP Users and Groups
- Log File Rotation
- MIME Type Programs
- PAM Authentication
- Running Processes
- Scheduled Commands
- Scheduled Cron Jobs
- Software Package Updates
- Software Packages
- System Documentation
- System Logs
- Users and Groups
- Apache Webserver
- BIND DNS Server
- MySQL Database Server
- PostgreSQL Database Server
- Procmail Mail Filter
- Read User Mail
- SSH Server
- Samba Windows File Sharing
- Sendmail Mail Server
- Squid Proxy Server
- Webalizer Logfile Analysis
- Command Shell
- Custom Commands
- File Manager
- HTTP Tunnel
- PHP Configuration
- Perl Modules
- Protected Web Directories
- SSH Login
- System and Server Status
- Upload and Download
- ADSL Client
- Bandwidth Monitoring
- Linux Firewall
- NFS Exports
- NIS Client and Server
- Network Configuration
- PPP Dialin Server
- SSL Tunnels
- TCP Wrappers
- idmapd daemon
- CD Burner
- GRUB Boot Loader
- Linux RAID
- Logical Volume Management
- Partitions on Local Disks
- Printer Administration
- SMART Drive Status
- System Time
- Cluster Change Passwords
- Cluster Copy Files
- Cluster Cron Jobs
- Cluster Shell Commands
- Cluster Software Packages
- Cluster Usermin Servers
- Cluster Users and Groups
- Cluster Webmin Servers
The first step is Webmin, Change Language and Theme, then switch from American to English.
Webmin, Webmin Configuration, then Start at boot time. You want Webmin to start automatically so you can use Webmin with the computer screen switched off.
When you have multiple Webmin servers, select Webmin Servers Index.
You can create users and groups in the Webmin Users page. You can also add Usermin to give your users more control over their Webmin environment. Webmin Users gives them access to things. Usermin provides more. I do not have Usermin installed to see what it adds.
Bootup and Shutdown
List of all the installed processes. You can switch automatic startup on and off. If something is not working automatically, check here to see if it needs an automatic start.
Select httpd, mysqld, and smb then select
Start now and at boot to start Apache, MySQL, and Samba automatically.
There are a lot of passwords in this section and most apply to applications or services, not people.
Create a backup of your files here. you should be able to create a backup to a separate disk through a USB connection then add a backup across your network to a computer in another building.
LDAP Users and Groups
Do you really want LDAP? Think about it later. Start with a visit to this option where you will probably see a message about a missing Perl module. install the module. make a note to look at LDAP later.
Look at Scheduled Commands and Scheduled Cron Jobs. Use one to to set up the maintenance jobs for your Web sites.
Software Package Updates
Change this to look for security updates daily and send you an email. You can then apply the updates when people are not in the middle of a major update. The other updates can be left for a weekly update.
Use this to look at Apache error logs. You might have to add the Apache logs by hand. Check every error and fix things so errors do not occur.
Users and Groups
You can see your users here. In my system, user id 0 is root access, 1 to 499 are processes, and 500 onwards are logged in users.
Here is the place to define your Web sites. Select
Create virtual host. Practice with the various options.
BIND DNS Server
if you use Bind in your Webmin server to provide the only DNS service, you are commited to running the server 24 hours a day. Tiny low power routers can provide the same service without overheating the planet and without a cooling fan screaming in your ear. There are some things those little low power devices do better than Webmin.
MySQL Database Server
MySQL is not running by default. You can start it from this administration page but then it is not started automatically. Start MySQL automatically back in
Bootup and Shutdown.
PostgreSQL Database Server
PostgreSQL is nice. When Drupal finish the PostgreSQL compatibility work, I will use PostgreSQL for many projects.
Read User Mail
You can read your mail here. Usermin adds to the user options for reading mail.
We do not need SSH immediately because this computer is on a local network protected by a firewall in the router. We will need SSH when we start testing secure Web sites.
Samba Windows File Sharing
Samba is the way we share files with Windows based computers. Given the number of die-hard unix engineers using Windows based notebooks, you usually need Samba.
Sendmail Mail Server
Sendmail is used by your web sites to send mail. You need it. it is started by default. The question is, can you survivie use only the defaults?
Squid Proxy Server
Hopefully you will not need this. If your computer had at least two network connections, you might connect one to the Internet and run Squid. Those little low power routers with no noisy fans or anything that breaks, are happily proxy serving millions of Web sites.
Webalizer Logfile Analysis
Log file analysis is useful for regular sites but not for test sites. For test sites, you just need to list errors and correct them.
A file manager would be nice but this is some obsolete rubbish requiring Java. Use the Webmin file manager when they move into this century.
This is a basic PHP configuration file text edit without the nice features of the PHP edit in cPanel. Please sponsor the development of an intelligent PHP configuration editor.
This is another Java applet needing replacement.
Upload and Download
You can upload and download stuff here or set up a file share. There are several choices for handling the passing of files from this computer to other computers.
You can use your Webmin computer as the ADSL client for your Internet connection. Consider two things. This big power hungry computer will have to suck the life out of our planet 24 hours a day trying to reproduct the same service as a tiny ultra low power ADSL modem. The first device on the ADSL line will explode when lightening strikes your telephone line.
Do you want a 600 watt $2000 computer running all day then vaporising or will you settle for a $59 10 watt dedicated ADSL modem performing the same task?
This is Samba for Unix. you set up the equivalent to Samba shares for use on Linux and Unix machines. Windows can be set to use NFS but Samba is easier.
You do not need complicated NFS and Samba shares for good backup programs because they can also use FTP and other access methods plus they can create the connections just for the backup and nothing else.
Consider an SSL tunnel or equivalent if you have to access Webmin from outside your network.
Webmin can do many things. For Web development, you might also need FTP, Webdav, and other access. A VPN, Virtual Private Network, casn run all your network access over one secure connection. Your choice of access security depends on the total range of access protocols you want to mix in one connection.
You can monitor your RAID configuration from here and receive an email when things go wrong, assuming it is just one disk that fails.
Partitions on Local Disks
You can access the SMART data fom th disks. The data can be missleading.
SMART Drive Status
This repeats stuff from the Partitions page.
This fails to pick up the NTP servers from the CentOS configuration.