解决nginx服务下打开php文件直接下载问题

发布于 2021-03-16  175 次阅读


Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)。所以如果你(以nginx为HTTP服务器)的URL访问的是一个php资源,那么这个资源不会被执行,而是会被直接下载。

我们主要有两种方法解决这个问题。

使用配置文件监听对php文件的访问

众所周知,apache是可以动态处理php的,因此我们可以再安装一个apache,并将对php文件的访问转发给apache进行处理。

配置文件如下:

location /
        {
            try_files $uri @apache;
        }
        location @apache
        {
            internal;
            proxy_pass http://127.0.0.1:yourPortOfApache;
            include proxy.conf;
        }
        location ~ [^/]\.php(/|$)
        {
            proxy_pass http://127.0.0.1:yourPortOfApache;
            include proxy.conf;
        }

在对应的虚拟主机的配置文件中include上面的配置文件就可以了。

使用FastCGI

因为我自己没有使用这种方法,因此仅贴出网上看起来比较完整的博客


你好哇!欢迎来到雷公马碎碎念的地方:)