Nginx-正在发送 php fpm 索引文件

Nginx-正在发送 php fpm 索引文件

我有一个简单的 nginx 设置并且一切运行正常。

我已将索引设置如下:

index index.html index.php

server_name 设置为 local.nginx。如果我请求http://本地.nginx它工作正常,但如果我请求http://local.nginx/index.php- 原始文件被发送到浏览器。

怎么了?

请参阅下面的配置:

server {
    listen       80;
    server_name  local.nginx;
    root         /var/www/local.nginx/;
    index       index.html index.php;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

编辑

我发现这只发生在 Chrome 上。清除浏览器缓存后问题就消失了。有人能解释一下这里发生了什么吗?

答案1

如果在测试时您的 PHP 配置不起作用,Chrome 将缓存原始 .php 文件并继续提供该文件。

请谨慎使用 PHP 配置,尤其是当您要接受上传或将任何输入保存到文档根目录中的文件时,因为可以将路径信息添加到 URL 并让 PHP 解释器执行它,例如

http://local.nginx/uploads/myfile.txt/oops.php

相关内容