NGINX始终强制下载PHP页面

时间:2018-12-11 04:12:23

标签: php nginx

我正在尝试为PHP创建一个NGINX配置,该配置将在docker安装程序上运行。使用一些在线的NGINX / PHP指南,我创建了一个conf文件,该文件旨在将所有请求发送到服务器,但不存在文件,但是当我击中基本URL时,Chrome下载的文件index.php的内容未经处理。如果我点击了其他页面,则显示404。

server {
    index index.php;
    server_name gamersplane.local;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/api;

    location .* {
        try_files $uri =404;
        rewrite .* index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass api:9000;
        fastcgi_index index.php;
        fastcgi_param HTTP_PROXY '';
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

我觉得我应该在现有位置块之前为非.php的任何内容创建一个位置块,但是我似乎无法弄清楚哪里出了问题。 conf错误吗,或者我的docker设置是否有问题阻止通讯?不确定如何分辨。

1 个答案:

答案 0 :(得分:0)

您可以尝试此配置吗?

server {
    index index.php;
    server_name gamersplane.local;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/api;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ [^/]\.php(/.*$|$) {
        fastcgi_split_path_info ^(.*[^/]\.php)(/.*$|$);
        fastcgi_pass api:9000;
        fastcgi_index index.php;
        fastcgi_param HTTP_PROXY '';
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

这可能有用,但是我不确定api:9000后端。