前言
今天斗志高昂的去搭建
LNMP运行环境,感觉自己无所不能!
开始安装PHPMySQLnginx行云流水,觉得马上就到达到人生巅峰。。。
然后通过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


本文详细阐述了在搭建LNMP环境下,遇到的nginx无法正确解析PHP脚本问题及解决方案,包括确认php-fpm安装与运行,修改nginx配置使.php文件通过fastcgi处理,以及修正fastcgi_script_name参数。
1482

被折叠的 条评论
为什么被折叠?



