You can do this all on one server pretty easily, although if this needs to scale you'd be better off using Amazon Web Services and setting up a couple of Large Instance EC2s behind an ELB. You can set up rsync scripts to keep all of the file systems in sync.
Then set up an RDS for your database and use S3 for your assets (CSS, images, etc). This is a pretty common architecture for cloud deployments that need to scale and at the same time will still allow you to do exactly what you're trying to do.