Is it better to start up with everything on one server or have say three servers all doing different things. example: one server for apache, one for mysql and one for mail or one server that is apache, mysql and mail together? (The system will be handling multiple virtual hosts)
Share
You migrate to multiple hosts when performance becomes problematic, for small projects it is more convenient and faster to use one host for webserver and database due to the ability to use faster IPC.
Mail can always be implemented using relays, for example a local forwarding only SMTP server on each application host, i.e. apache & php, but you can forward all mail to other servers to perform the real mail delivery, including third party services such as Google Mail.
If you are handling multiple virtual hosts, before performance problems occur you may have a requirement on higher availability. Consider what happens when a failure happens on that one host, or you wish to upgrade to a newer version and a complication arises. In such configurations it is more convenient to have the webserver and database on separate hosts, but modern day software architectures allow many complex varieties of configuration options and the choice of which one is dependent upon the applications you are running.