deepin 15.3 安裝配置nginx


1、安裝nginx

sudo apt-get install nginx

2、配置nginx

sudo gedit /etc/nginx/sites-enabled/default

  找到:index index.html index.htm;

  改為:index index.php index.html index.htm;

 

  找到:location ~ .php$ { * } 區塊
做如下調整(改動之處於行末有注釋):

location ~ .php$ {
    try_files $uri =404; #增加
    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/php/php5.6-fpm.sock; #反注釋
    fastcgi_index index.php; #反注釋
    include fastcgi_params; #反注釋
}

3、解決php-fpm與nginx的小bug

  按上述步驟操作后,由於nginx與php-fpm之間的一個小bug,會導致這樣的現象:
  網站中的靜態頁面 *.html 都能正常訪問,而 *.php 文件雖然會返回200狀態碼,但實際輸出給瀏覽器的頁面內容卻是空白。

  簡而言之,原因是nginx無法正確的將 *.php 文件的地址傳遞給php-fpm去解析,相當於php-fpm接受到了請求,但這請求卻指向一個不存在的文件,於是返回空結果。

  為了解決這個問題,需要改動nginx默認的fastcgi_params配置文件:

sudo gedit /etc/nginx/fastcgi_params
#在文件的最后增加一行
fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;

  關於這行的內容,多說幾句,其中有兩個參數:
  $document_root      即是指網站的根目錄
  $fastcgi_script_name   則是指網站上的各個 *.php 文件名(其實是文件的相對路徑)
  這兩個合在一起形成完整的 php file path,比如你的網站有個 /test/script.php 文件,nginx傳遞給php-fpm的完整路徑就是:/網站目錄/test/script.php

4、在/var/www/html文件夾中新建一個index.php文件

<!DOCTYPE html> 
<html> 
<body> 
<h1>My first PHP page</h1> 
  <?php 
      echo "Hello World!"; 
  ?> 
</body> 
</html>

5、瀏覽器輸入127.0.0.1進行測試

效果如圖,表示成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM