If you have the need to run php with a very high traffic you should think about the follwoing setup.
Don’t think it will work in 5 minutes and you don’t need some knowledge about how to setup an webserver and a php application, you definitely need it.
If you think this is a step by step description for people which only want to copy and past commands and it works then you are wrong here, please take a websearch engine for a alternative description.
What you need:
- nginx http://www.nginx.net/
- php-fm http://php-fpm.org/
- php http://www.php.net/
- a compile environment
- the development libraries for the wanted php features and libxml2
- A clear test scenario and target how many requests per second should be reached on static and dynamic part.
How you can build this environment:
- Extract, build and install nginx http://wiki.nginx.org/NginxGettingStarted
- Extract, build and install php-fm http://php-fpm.org/wiki/Documentation
- configure nginx for fast-cgi proxying http://wiki.nginx.org/NginxHttpFcgiModule
A brief description how the flow is:
- A request comes to nginx
- He takes a look into his config to find the right location or server config
- If the static content rule matches then he will deliver the content directly from the disc
- If the dynamic rule matches the he will contact php-fm, which manage the php-instances
- php-fm execute the php script and send the dynamic content back to nginx
- nginx sends the content back to the client
There are some pitfalls:
You should take your time to find the right config setup for nginx and php-fm to be able to fulfill the assumed traffic.
I have started to translate the russian documentation, which is still not complete.
UPDATE: There is now a official wiki http://php-fpm.org/