lnmp搭建网站,访问网址提示没有安装php环境

在自己的服务器配置好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文件

关于nginx和php-fpm

可以看到配置文件中listen = /tmp/php-cgi.sock,就是对应Location中fastcgi_pass的内容;

按照以上配置nginx,配置不正确可能会出现502错误。

配置正确后,又显示Access Denied;查看了日志之后发现403错误;

可以参考博客进行尝试,我参考:博客后,可以成功运行。

注意:配置nginx以及php-fpm文件后需要重启nginx或php-fpm;

上一篇:php文件加密(screw方式)


下一篇:CentOS7.x 默认php版本与php7.4共存