首页 > 代码库 > deepin 15.3 安装配置nginx
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。