我不确定要考虑什么或原因,所以如果标题具有误导性,我很抱歉。
我刚刚安装了第一次 Nginx,出于好奇想看看我是否可以让一些流行的论坛软件正常工作。我首先尝试安装 Vbulletin 4,因为这是我托管的一个社区使用的。PHP 由 php-fpm 处理。我可以获得任何自定义页面来显示我刚刚编写的一些简单的 php echo,以及任何文件名或目录。例如http://example.com/test/test.php或http://example.com/test.php。
但是,当我尝试通过位于http://example.com/install/install.php的安装脚本安装 vbulletin 时,该文件只会下载。我对这个域的 Nginx 配置进行了两次和三次检查,一切似乎都可以正常工作。
下载 install.php 几次后,我决定尝试在 Chrome 隐身窗口中访问该页面。瞧,install.php 页面不再下载,安装程序提示我输入我的客户 ID #,因为它应该有。然后我回到我的主 Chrome(不是隐身)窗口并尝试再次访问安装页面,install.php 再次下载!
这是我当时使用的配置:
server {
listen ip:80;
server_name my.domain.com;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
root /usr/share/nginx/html;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
}
}
对这个问题的原因有任何见解吗?我无法想象为什么它会为一个会话提供 php 文件的下载,然后实际为另一个会话提供动态内容。我不希望某些随机用户意外下载任何文件。