lamp和lnmp都是用来运行php网站的。 一个是apache,一个是nginx,在lamp中,php是作为apache的一个模块,被apache加载并调用。 当处理php脚本时,是由apache来完成的,而实际上我们应该说是apache的模块libphp5.so 处理的。

nginx就不一样了,nginx后面有php-fpm服务,这个php-fpm服务作为独立的服务存在,可以监听ip:port 也可以监听socket,真正处理php脚本的工作是由php-fpm来完成的,而nginx仅仅是把用户的请求发给php-fpm,然后再把php-fpm的处理结果发给用户。

再总结一下,apache因为把php模块集于一身成为一个整体,任何请求访问(静态,动态)都是apache(httpd)自己搞定的, 而nginx仅仅是一个传递的角色。它可以处理静态(图片,js,css等),但php相关的就得由后面的php-fpm来处理。

http://ask.apelearn.com/question/9293