nginx自己不支持php。若是須要使用php,須要安裝php解析服務,如php-fpm,或spawn-fcgi等。從在Ubuntu上配置的便捷性考慮,此次使用php-fpm實現。php
安裝php和php-fpm
安裝方法,略……html
由於能夠直接用包管理器安裝。nginx
安裝後須要啓動服務。git
修改nginx配置文件
修改配置文件/etc/nginx/sites-available/default,首先讓讓默認頁面裏有php文件:github
index index.php index.html index.htm;
接着開啓php支持,找到「location ~ .php」部分,將其中的註釋進行修改:web
location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
「fastcgi_pass 127.0.0.1:9000;」與spawn-fcgi有關,故要註釋。修改配置文件後須要重啓nginx服務。服務器
原理
按網上的說法:「nginx自己不能處理PHP,它只是個web服務器,當接收到請求後,若是是php請求,則發給php解釋器處理,並把結果返回給客戶端。nginx通常是把請求發fastcgi管理進程處理,fascgi管理進程選擇cgi子進程處理結果並返回被nginx」。也就是說,nginx將處理請求交給php5-fpm,再接收處理返回結果。php-fpm
參考
http://www.nginx.cn/231.htmlpost