nginx 访问 PHP 问题详解
nginx 访问 PHP 问题详解
文章目录前言
问题1. nginx 访问PHP脚本没有解析,而是直接下载PHP脚本?
2. nginx 访问PHP脚本,HTTP状态码为200,但是页面为空?
测试
今天斗志高昂的去搭建LNMP 运行环境,感觉自己无所不能!
开始安装PHP MySQL nginx 行云流水,觉得马上就到达到人生巅峰。。。
然后通过nginx访问PHP脚本。。。
解决遇到了如下问题:
1. nginx 访问PHP脚本没有解析,而是直接下载PHP脚本?
原因
因为nginx和PHP之间的通信方式是fastcgi,而php-fpm实现了对fastcgi进程管理
解决方案
确认已经安装并且运行php-fpm,如果没有安装请安装php-fpm(安装的php-fpm需要与自己安装的PHP版本对应,例如我安装PHP版本是PHP7.2,那么我的fpm安装的是php7.2-fpm)
确认你web服务器配置中的.php文件是不是被指定给FastCGI server处理,修改vi /etc/nginx/sites-available/default文件内容,如下:
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
try_files $uri =404;
}
2. nginx 访问PHP脚本,HTTP状态码为200,但是页面为空?
原因
如果问题1已经解决的前提下,问题2的原因是由于fastcgi_script_name访问脚本路径不正确引起的,修改在这里插入代码片文件内容,添加如下代码:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
查看PHP版本信息
通过虚拟域名访问laravel
nginx 访问 PHP 问题详解相关教程