在自己的服务器配置好Nginx配置以后,发现访问我的网址,自动下载了一个文件,说没有PHP环境,我很纳闷,我使用lnmp已经配置过PHP环境了。可是这里说我没有PHP的环境。去论坛问了有大佬说我这是PHP的环境和目录不匹配。我也不太懂,毕竟没怎么接触过PHP,虽然PHP是...;于是到网上查资料发现:即使已经配置过PHP环境,但是通过Nginx访问到目录之后,.PHP 文件没有被PHP解释器解析;所以就需要Nginx和PHP之间进行通信。
具体做法就是在Nginx的配置文件中的server中添加代码,这是我的代码:
server {
default_type 'text/html';
charset utf-8;
listen 80;
autoindex off;
server_name blog.test.com;
root /home/wwwroot/blog;
access_log /usr/local/Nginx/logs/access.log combined;
index index.html index.htm index.jsp index.PHP;
#error_page 404 /404.html;
location / {
add_header Access-Control-Allow-Origin *;
}
#主要添加这里:
location ~ \.PHP(.*)$ {
fastcgi_pass unix:/tmp/php-cgi.sock; #关键代码
fastcgi_index index.PHP;
fastcgi_split_path_info ^((?U).+\.PHP)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
这里使用的是其中的一种方式;你也许会看到别的方式配置;想要了解的话,这里:https://segmentfault.com/q/1010000004854045介绍的很详细;
这里需要注意上面是在Nginx的配置文件中配置;你需要检查一下PHP的配置确保正确;具体做法:
一般来说你安装的PHP-fpm.conf在
cd /usr/local/PHP/etc
vim PHP-fpm.conf #打开PHP-fpm.conf文件
可以看到配置文件中listen = /tmp/php-cgi.sock,就是对应Location中fastcgi_pass的内容;
配置正确后,又显示Access Denied;查看了日志之后发现403错误;
注意:配置Nginx以及PHP-fpm文件后需要重启Nginx或PHP-fpm;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。