首頁 >運維 >Nginx >Ubuntu中Nginx怎麼安裝與配置

Ubuntu中Nginx怎麼安裝與配置

PHPz
PHPz轉載
2023-05-15 18:07:251971瀏覽

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


########################################################11 3.4 測試nginx對php的支援########   (1)重新啟動nginx:######      $/etc/init.d/nginx restart######    $/etc/init.d/nginx restart######   (2)啟動啟動:######      $spawn-fcgi -a 127.0.0.1 -p 9000 -c 10 -u www-data -f /usr/bin/php-cgi######      spawn-fcgi啟動出現時錯誤,查看php-cgi是否安裝,如果麼有的話,安裝php5-cgi。 ######      $sudo apt-get install php5-cgi######   (3)測試######      開啟 http 4.nginx設定#########     nginx的設定檔是/etc/nginx/nginx.conf,其中設定了一些必要的參數,我們發現其中這樣的語句:######     include / etc/nginx/sites-enabled/*######     可以看出/etc/nginx/sites-enabled/default檔案也是一個核心的配置文件,其中包含了主要的配置信息,######如伺服器跟目錄、伺服器名稱、location資訊和server資訊。 ######     對於原始程式碼安裝的nginx,設定檔為/usr/local/nginx/conf/nginx.conf。 ######    以下主要說明location的符合規則:######   (1)= 前綴的指令嚴格符合這個查詢。如果找到,停止搜尋。 ######   (2)剩餘的常規字串,最長的符合優先使用。如果這個匹配使用 ^~ 前綴,搜尋停止。 ######   (3)正規表示式,依照設定檔裡的順序,第一個符合的被使用。 ######   (4)如果第三步產生匹配,則使用這個結果。否則使用第二步的匹配結果。 ######    在location中可以使用常規字串和正規表示式。 ######    如果使用正規表示式,你必須使用下列規則:######      (1)~* 字首選擇不區分大小寫的符合######      (2)為寫入的符合 ######    範例:######     location = / {######    # 只符合/ 查詢。 ######    [ configuration a ]###     }######  location / {#######    # 符合任何查詢,因為所有請求都以 / 開頭。 ######            # 但以正規表示式規則與長的區塊規則將會優先與查詢來配對。 ######    [ configuration b ]######  }######  location ^~ /images/ {######    # 匹配任何以/images/ {######    # 匹配任何以/images/ {######    # 匹配任何以/images/ 開頭的任何查詢並且停止搜尋。 ######           # 任何正規表示式則不會被測試。 ######    [ configuration c ]######  }######  location ~* \.((gif|jpg|jpeg)$ {#####    或jpeg 結尾的請求。 ######          # 然而所有 /images/ 目錄的請求將會使用 configuration c。 ######    [ configuration d ]######  }####

以上是Ubuntu中Nginx怎麼安裝與配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除