34
I think Monty's suggestion is pretty close to being spot on, however with the loads you are talking of there shouldn't be a need to throw buckets of money at it. The general rule of thumb I go by is that Apache (or any webserver) is bandwidth bound, PHP (or any interpreted programming language)is CPU bound and MySQL is Memory bound.
In the article I wrote about
performance tuning XOOPS on IIS I took an old Althon 1.4Ghz based system with 512MB PC133 SDRAM and a single ATA-66 10GB 5400RPM HDD and took it from serving around 1100 hits per minute using the default server/PHP config to serving over 4000 hits per minute using optimised Xoops, PHP and IIS settings (I didn't even get to MySQL memory optmisations which would further increase performance). To put that in perspective with my site having around 23 HTTP requests per pageview, 4000 hits a minute is equal to around 250,000 page views (5.75 million hits) a day. With 20 people on your server only in business hours you probably wouldn't see 250,000 page views in a month.
So in your situation you are not bandwidth limited, assuming you have 1GB or so of Memory in your server you shouldn't be memory limited either, the only thing that might let you down hardware wise is CPU. Personally what I would do is setup you current server as a dedicated MySQL server (make sure it has at least 1GB RAM), and then get a dual opteron system as Monty suggested with the fastest you can afford (again with around 1GB of RAM). With the load your expecting I would not even bother with SCSI drives, it's a waste of money as once apache, PHP and MySQL are loaded into memory the disk I/O will barely be touched. For the webserver just get a couple of WD 10,000RPM SATA drives, put them in software RAID 1 (very reliable, I've done it myself for several years) or use a hardware RAID hotswap system if 100% uptime is important. Even then though you'll still need to look at apache, PHP, MySQL and XOOPS optmisations to get really snappy responses from your server as there is only so much hardware can do. Look at loading PHP as a module using FastCGI for apache, use something like APC/eAccelerator for PHP acceleration, query caching for MySQL and block caching for Xoops. Also be sure that your theme for XOOPS is not bloated with images and HTTP requests, and use CSS for layout as much as you can.