deepin 15.3 安装配置nginx

Posted dinphy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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进行测试

效果如图,表示成功。

 

以上是关于deepin 15.3 安装配置nginx的主要内容,如果未能解决你的问题,请参考以下文章

deepin 15.3 安装数据库MariaDB10.0

ubuntu16.4 deepin 15.3添加PPA源 安装php5.6

Deepin nginx lumen配置

deepin15.8搭建LNMP环境

Deepin系统中如何安装Visual Studio Code

deepin20下安装MySQL || MariaDB