How mission critical is this service, what level of availability is required?
If 99.99% uptime is required, then you'll need to build in some redundancy in there. I would never launch a commercial project using just 1 web server and 1 DB server.
Consider two webservers, and two db servers, each pair load-balanced, so that the http request comes into the load-balancer which decides which of the two web servers to send the request to. If one server dies, all requests are sent straight to remaining good server, until the other is brought back up online.
The same applies to the db servers.
Your application would need to be designed to take advantage of this. Forexample, in a load-balanced setup, you don't want your php writng files to the webserver, because the second webserver can't read them.
Your load-balanced databases would also need to be synchronised so that any change made to one is instantly copied to the other.
For serious resilience, you might want to consider having 4 of each, spread across two different hosting companies in two different locations.
You might also want to think about splitting the web and application tiers - having webservers which only display html, javascript etc..., pushing your PHP back into an application tier (separate servers), and your database on a third tier. Each tier should be load-balanced and separated from the others by firewalls.
Advantages of this separation include:
+delivering web pages and doing php calculations are fundamentally different computing functions and having them on separate servers allows each server to be optimally configured for the task.
+from a security point of view it makes an attacker's job more difficult to get through layers of protection before they get to the good stuff
This may be overkill for what you need, I don't know. The opposite end of the spectrum is that you can have web server, php and database server all cosy in one virtual server, for minimal expense and design complication.
As ever, picking the right solution is part of the job 🙂