APC UPS in Centos 5.x


$ <span style="text-decoration: underline;">sudo yum install apcups*</span>
---> Package apcupsd.x86_64 0:3.14.3-1.el5.rf set to be updated
$ <span style="text-decoration: underline;">sudo /sbin/chkconfig --list apcupsd</span>
apcupsd         0:off   1:off   2:on    3:on    4:on    5:on    6:off

Before you start the apcupsd service, edit /etc/apcupsd/apcupsd.conf and set the cable type (to usb for most modern units) and other parameters as needed... then:

$ <span style="text-decoration: underline;">sudo /etc/init.d/apcupsd start</span>

Setting up Virtualmin on Centos with a Linode


Once you know these few steps, setting up a LAMP (Linux/Apache/MySQL/Perl-PHP) server on a Linode (please use that link, as it includes my referral code) is insanely simple:

First, starting with a freshly provisioned CentOS install, ssh into the root account. First, update the base system --


yum update


I find it convenient to also install the console version of emacs:


yum install emacs-nox


Next, edit /etc/sysconfig/network and change the hostname. That file is read at boot, so you might also want to set the hostname for the current session:


hostname www.example.com


Download the install.sh script from http://www.virtualmin.com/download.html into /usr/src ... and then execute it:


cd /usr/src # wget http://software.virtualmin.com/gpl/scripts/install.sh

sh install.sh


Then login, as root, to your new virtualmin configuration at your linode's address: https://li99-999.members.linode.com:10000 where the 99-999 is replace with your linode's address (see the linode control panel).

Install problem: awstats

Ran into this error message after install, when clicking the "Check Your System" button --

The AWstats command /usr/share/awstats/wwwroot/cgi-bin/awstats.pl was not found on your system.

Complicated by the fact that "yum install awstats" said it was already installed. But where? "rpm -ql awstats" gives the answer... and then I just copied it as follows:

# mkdir -p /usr/share/awstats/wwwroot/cgi-bin
# cp -a /var/www/awstats/awstats.pl /usr/share/awstats/wwwroot/cgi-bin

Install problem: clamd (after update)

NOTE: After installing Virtualmin updates, I got an error:

ERROR: Command rejected by clamd (wrong clamd version?)

which I resolved with:

# /etc/rc.d/init.d/clamd-virtualmin restart

Default settings when you configure

Under System Settings / Server Templates and then Default Settings --

Upgrading PHP and MySQL

This is one place where Centos 5.3 lags behind the times. If you need PHP 5.2 or above, you will have to enable an alternate repository. As of this writing, the "Centos Testing" repository contains a pre-release version that does not include the mcrypt and memache modules -- a real problem. NOTE: Although I was able to upgrade a running server, I'd recommend doing this before loading any production domains. Follow the instructions at


Double-Check Postfix Relaying

Postfix was accepting email for anything@aliased-domain.com ... to solve this, open the aliased sub domain in Virtualmin, and under:

Server Configuration
  Email Settings


Virtual server email-related settings
  Mail aliases mode

from Catchall forwarding to Copy aliases from target. You probably want to change this on the System Settings / Server Templates / Default Settings for Sub-Servers page as well. If you have already created several domains, you can adjust this all at once:

# virtualmin modify-mail --alias-copy --all-domains

NOTE: Is there a bug in Virtualmin 3.68.gpl? I had to manually:

# cd /etc/postfix
# postmap virtual
# postfix reload

to force that to refresh.

Tuning clamd

Rather than spend too much time tuning the memory, I simply killed clamd as it is a huge memory pig and leads to Out Of Memory webserver freezes.

Tuning Apache

With the default settings, Apache can veer out of control and eat all available memory. In /etc/httpd/conf/httpd.conf, change as follows in the section shown:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
# was: MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 400
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   10
ServerLimit      64
MaxClients       64
MaxRequestsPerChild  400

Tuning Spamassassin

Dramatically reduce memory footprint by changing the number of threads that spamassassin will execute at once from 5 down to 1. In /etc/sysconfig/spamassassin (your location may vary) --


SPAMDOPTIONS="-d -c -m<strong>5</strong> -H"


SPAMDOPTIONS="-d -c -m<strong>1</strong> -H"

-- William Lindley Automatically delete old spam?


Yes, if older than

daAutomatically delete old spam? No

Yes, if older than days


Installing VirtualBox on Centos 5.2


Full instructions, particularly for "headless" installation, are here.

First we download the RPM for RedHat Enterprise Linux 5 (RHEL 5) which is the equivalent to Centos from the virtualbox.org site

After downloading (and renaming the file to eliminate everything after the .rpm) we install as follows but get an error:

# rpm -ivh VirtualBox-2.1.0_(version).rpm
No precompiled module for this kernel found! ...
Compilation of kernel module FAILED! ...
Please consult
to find out why the kernel module does not compile.
Most probably the kernel sources are not found.
Install them and execute
   <strong>/etc/init.d/vboxdrv setup</strong>
as root.

To rectify this:

# yum install SDL kernel-devel kernel-headers
# KERN_DIR=/usr/src/kernels/2.6.18-whatever-your-current-kernel
# export KERN_DIR
# /etc/init.d/vboxdrv setup

Then add users to the vboxusers group:

# /usr/sbin/usermod -a -G vboxusers yourusername

and you should be able to launch VirtualBox from the Applications / System Tools menu.

Have fun!

RPM Bits on Centos 5


Upgrading VMware on Centos 5.x


So today when I tried to start my XP machine, I'm greeted with VMware 2 telling me that it has expired.

Frustration: Why should I use a program that's going to decide to quit working for no reason? I'm moving off this as soon as I can find a viable alternative. I wouldn't use it at all but Quicken contains my business data for the past 10+ years and transitioning that to something else would be a pain. Why I can't buy Quicken Linux for Business is incredibly frustrating.

Anyway, next frustration:

yum upgrade vmware

does nothing. Indeed, yum doesn't know there is a package called "vmware" installed though of course it's running. After much hair-pulling, this command works and tells us what's really going on:

rpm -qa | grep -i vmware VMware-server-2.0.0-110949 #

Aaaagh... it's mixed-case, then a dash, then "server" -- but don't give yum anything past the second dash or it will get all confused again. Just as brain-damaged as 'man' telling you:

SEE ALSO apropos(1), whatis(1), less(1), groff(1), man.config(5).

but when you try to ask for one of those pages you are greeted with the obnoxious:

$ man less(1) bash: syntax error near unexpected token `('

and you actually would have to type:

$ man 1 less

which is NOT what the manpage told you at all. It should have said: See also: 1 man, 1 less, ...etc...

Anyway back to the issue... after downloading the new .rpm, do an rpm -Uvh on it... then

/etc/rc.d/init.d/vmware stop /usr/bin/vmware-config.pl /etc/rc.d/init.d/vmware stop

Yes, you must reconfigure the vmware server... things may have changed, let it do its magic.

Finally as to the problem of arrow keys not working: see this post: VMWare and the fubar keyboard effect

Basically, vmware gets confused by trying to remap the X keyboard. In your /etc/vmware/config, add the line:

xkeymap.nokeycodeMap = true

and that should restore the arrow keys. If not, you can always turn NumLock off and use the arrow keys on the numeric pad. (A bit of a pain when using accounting software!)