Ubuntu上配置nginx+php+fastcgi的流程,nginxfastcgi

來源:互聯網
上載者:User

Ubuntu上配置nginx+php+fastcgi的流程,nginxfastcgi
這兩天需要在Ubuntu14.04上搭建nginx和php的環境,配置的過程中在fastcgi的問題上花了很多時間,網上的資料大多年久失修,於是決定將整個過程記錄下來,分享給大家。
準備:

apt-get update


1. 安裝nginx並啟動
apt-get install nginxsudo /etc/init.d/nginx start

2. 安裝php及相關
sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql

3. FastCGI在運行php網站之前需要先瞭解下FastCGI,FastCGI是一個可伸縮地、高速地在HTTP server和動態指令碼語言間通訊的介面,它採用C/S結構,可以將HTTP伺服器和指令碼解析伺服器分開,當HTTP伺服器遇到動態請求時,會將請求轉寄給FastCGI進程,FastCGI進程執行動態指令碼後再將結果返回給HTTP伺服器,HTTP伺服器最後將結果返回給瀏覽器,這在很大程度上提高了請求的響應速度。
實現FastCGI有幾種方式,PHP-CGI、PHP-FPM、Spawn-FCGIPHP-CGI是PHP內建的FastCGI管理器,啟動PHP-CGI可以使用如下命令:php-cgi -b 127.0.0.1:9000PHP-CGI有兩個問題,一是變更php.ini後需要重啟php-cgi才會生效,二是php-cgi進程崩潰或者被殺死後php就不能運行了。
PHP-FPM是從PHP 5.3.3之後新加入的CGI管理器,在更改PHP配置之後不需要重啟,且由於加入了守護進程,所以即使被殺死之後也能快速重啟。
Spawn-FCGI是一個通用的FastCGI管理器,而不僅僅只針對PHP一種指令碼語言。但它在效率、CPU佔用等方面都不如PHP-FPM。
4. PHP-FPM既然PHP-FPM的方式最好,那麼我們現在就來配置一下。由於PHP-FPM是一個獨立的進程,所以需要與Nginx進行通訊。目前有兩種通訊方式,tcp和socket。兩種方式的區別和配置方式可以參見這兩篇文章:nginx 和 php-fpm 通訊使用unix socket還是TCP,及其配置Php-fpm TcpSocket vs UnixSocket

在這裡簡要說一下配置方式,兩種方式都主要修改nginx的設定檔(/etc/nginx/sites-available/default)和fpm的設定檔(/etc/php5/fpm/pool.d/www.conf)。
TCP配置方式需要將nginx設定檔中相應的反向 Proxy的fastcgi_pass參數改為127.0.0.1:9000,將fpm設定檔中的listen參數修改為127.0.0.1:9000。
Socket配置方式需要將nginx設定檔中相應的反向 Proxy的fastcgi_pass參數改為unix:/dev/shm/fpm-cgi.sock,將fpm設定檔中的listen參數修改為/dev/shm/fpm-cgi.sock,如果考慮到高並發可以將listen.backlog參數改為-1,記憶體積壓無限大。另外,還可以提高核心層級的並發串連數,修改/etc/sysctl.conf:
sudo echo 'net.core.somaxconn = 2048' >> /etc/sysctl.confsudo sysctl -p

兩種配置方式修改完之後都需要重啟php-fpm和nginx。
sudo service php5-fpm restartsudo /etc/init.d/nginx reload

5. 運行php網站以上配置完成之後,我們就可以寫一個簡單的php頁面來測試一下。建立一個網站目錄:
sudo mkdir /var/www/

在nginx設定檔中修改root目錄為 root /var/www;添加一個測試頁面:
sudo vi /var/www/test.php

加入以下代碼:
<?php phpinfo();?>

此時在瀏覽器輸入地址http://localhost/test.php,就可以看到php的資訊了。
常用命令:1. 檢查nginx啟動出錯
sudo nginx -c /etc/nginx/nginx.conf -t


如果大家覺得對自己有協助的話,還希望能幫頂一下,謝謝:)
個人部落格:http://blog.csdn.net/zhaoxy2850
本文地址:http://blog.csdn.net/zhaoxy_thu/article/details/41851389
轉載請註明出處,謝謝!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.