Jeffrey:

Suggestion for you - you will need licenses for each of the web servers in this config, but here goes:

Three servers here. Two for running the PHP scripts, one for the database server. Unfortunately MySQL's replication(master/slave) scheme doesn't make for the greatest load reduction so we'll stick with one MySQL host machine.

Again I'll recommend RedHat Linux 7.2, latest Kernel RPMS, Apache, PHP 4.1.1 and MySQL. MySQL installed from RPM and PHP compiled as a DSO. Be sure to have zlib installed on the two web servers and configure php --with-zlib when building it. Again, be sure page compression is ON in the php.ini ir it doesn't help.

For the two PHP script servers you'll not need the largest or fastest disk setups available. You'll need a pretty fair amount of memory so that MySQL queries can be safely returned, sorted or processed. Obviously faster cpus will do the sorting or processing faster. If you'll have the uploads capability turned on you'l want to use an NFS share on the upload directory so that regardless of which set of scripts on which server a person connects to the uploads go to the same directory and can be downloaded the same way. Sharing the stylesheets and image directories will make maintanance easier as well. This shouldn't be a problem since the O/S caches those. Keep that native O/S caching in mind when considering how much RAM to include also. Linux is vigorous in using all the RAM you'll give it for caching. Caching makes things faster for the end user.

The MySQL server: This is the workhorse of the setup here. The faster the discs the faster MySQL reads and writes, the shorter the time span that tables are locked and the smaller the chance of corruption. The more memory you give it the more it can cache. MySQL loves memory. Lots of memory. More then lots. I think you get my point. Use the RPMs so you can keep it up to date with no problems and you'll be more apt to do so.

Then give it more memory.

For each setup don't forget to write some realy good scripts to do mysql dumps then run them from cron. We use perl scripts (our PHP is DSO, cannot run from command line) to do mysqldump on the databases and ftp them to another server for safe keeping. Twice a day for good measure. We've never had table corruption but the first time I shut off those cron scripts I know it will happen.

Colorado:

What are your specs on page views, etc.. What else is running on that machine?

Wraith:

Same questions to you.

I have asked Rick to have a look over this with us.

Regards,

Brett Harris
Infopop Corporation