1.nginx介紹
nginx是一個非常輕量級的http伺服器,nginx,它的發音為“engine x”, 是一個高效能的http和
反向代理伺服器,同時也是一個imap/pop3/smtp 代理伺服器。
2.對php支援
目前各種web 伺服器對php的支援一共有三種:
(1)透過web 伺服器內置的模組來實現,例如apache的mod_php5,類似的apache內建的mod_perl
可以對perl支援。
(2)透過cgi來實現,這個就好比之前perl的cgi,該種方式的缺點是效能差,因為每次伺服器遇到
這些腳本都需要重新啟動腳本解析器來執行腳本然後將結果回傳給伺服器;
另一方面就是不太安全;該方面幾乎很少使用了。
(3)最新出現一種叫做fastcgi。所謂fastcgi就是對cgi的改良。它一般採用c/s結構,一般腳本處理器
會啟動一個或多個daemon進程,每次web 伺服器遇到腳本的時候,直接交付給fastcgi的進程來執行,然後
將得到的結果(通常為html)傳回瀏覽器。
2.1 apache mod_php模式
我們很長一段時間使用經典的apache mod_php。
apache對php的支援是透過apache的模組來支援的。如果從原始碼編譯安裝php的話,如果希望apache支援
php的話,在./configure步驟需要指定--with-apxs2=/usr/local/apache2/bin/apxs 表示告訴編譯器通過
apache的mod_php5/apxs來提供對php5的解析;而且在最後一步make install的時候我們會看到將動態連結函式庫
libphp5.so拷貝到apache2的安裝目錄的modules目錄下,也需要在httpd.conf設定檔中加入loadmodule
語句來動態將libphp5.so模組載入進來,從而實現apache對php的支援。
2.2 nginx fastcgi模式
nginx完全是輕量級的,必須藉助第三方的fastcgi處理器才可以對php進行解析,因此其實這樣看來nginx是
非常靈活的,它可以和任何第三方提供解析的處理器實現連接從而實現對php的解析(在nginx.conf中很容易設定)。
nginx可以使用spwan-fcgi。在早期版本中需要安裝lighttpd,但在9.10版本以後直接安裝spawn-fcgi就可以。
現在出現了新的第三方的php的fastcgi處理器,叫做php-fpm,可以了解一下。本文是基於spawn-fcgi實作對
php模組的支援。
2.3 安裝fastcgi
/usr/bin/spawn-fcgi這個檔案來管理fastcgi,它原屬於lighttpd這個包裡面,但9.10 後,spawn-fcgi
被分離出來單獨成包。
(1)使用apt-get線上安裝指令如下:
$sudo apt-get install spawn-fcgi
(2)原始碼安裝如下,下載位址為:
解壓縮以後,進入目錄下執行以下安裝指令:
$./configure
## 安裝之後,spawn-fcgi指令就可以直接使用了,它的可執行檔在/usr/local/bin/spawn-fcgi。
3.nginx安裝##3.1 安裝nginx
(1)線上安裝apt-get install nginx
nginx的版本是1.2.1 ubuntu安裝nginx之後的檔案結構大致為:#o# # 下,並且每個虛擬主機已經安排在了/etc/nginx/sites-available下
啟動程式檔案在/usr/sbin/nginx
/nginx中,分別是access.log和error.log
並且已經在/etc/init.d/下創建了啟動腳本nginx
預設的虛擬主機的目錄設定在了/usr/share/nginx/www
(2)原始碼安裝
下載位址:
我這裡下載的是nginxtar.1.3.9.## 我這裡下載的是nginxtar.1.3.9.## 我這裡下載的是nginxtar.安裝過程很簡單,如下:
$./configure
$make
$make install
安裝成功之後,nginx放置在/usr/local/nginx目錄下,主要的設定檔為conf目錄下的nginx.conf,
nginx的啟動檔案在sbin目錄下的nginx檔案。
3.2 啟動nginx
(1)線上安裝的啟動過程
$sudo /etc/init.d/nginx start
# (2)原始碼安裝的啟動過程
$cd /usr/local/nginx
# $sbin/nginx# /localhost/ , 一切正常!如果不能訪問,先不要繼續,看看是什麼原因,
解決之後再繼續。
如果你的機器同時安裝了apache,那麼上面的存取方式就不能使用了,而且nginx都可能啟動不了,這是
因為它們都是用了80這個連接埠。我們在這裡將nginx的埠修改為8080,
這裡主要修改nginx的設定檔nginx.conf,將這一行
listen 80;
修改為
##'
# listen 8080;
然後就可以存取了,http://localhost:8080/ 。
3.3 安裝php和mysql$sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql
以上是Ubuntu中Nginx怎麼安裝與配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!