I am setting up a web server for a client. They will be using a web app (PHP/LAMP) that I am building. The server will be sitting within their network locally. There will also be a MySQL database on the same server. The load on the server will only be 20-25 concurrent users, but uptime and performance is still very important.
The application itself will be using a back-end CMS (TBD) to display content to the user using JQuery on the front-end and PHP on the back-end.
So, my question is: Is there a good set of server system requirements in terms of CPU, Cache and memory (size/type) to provide a relatively cheap solution, but still provide quality performance.
To tell you the truth, hardware isn't the biggest factor, it's coding. If you develop your application correctly and optimally, then you should be able to run at least 100 users concurrently on a machine running with 1ghz, 512mb ram, and a 5200rpm hard drive.
I recommend using VMWare to create virtual machines and separate the MySQL server from the web server. This also gives you the ability to replicate, migrate, or upgrade the machine without reconfiguring and reinstalling.
Also, run your LAMP configuration on an operating system without a GUI (Debian, Ubuntu, Fedora, etc. with no X-Window installed). These are servers, they shouldn't be wasting resources displaying pretty windows.
Finally, like Trent said, RAID configuration is a great idea, but RAID is not a backup solution. If you have two of the same hard-drives, it is very likely that if one fails, the other will shortly after. Always have a backup solution (NAS, Tape, DVD, Floppy Disk, whatever).
The content is written by members of the stackoverflow.com community.
It is licensed under cc-wiki