0

我有一个 php 脚本。我正在使用 nginx 和 spawn-fcgi。

spawn-fcgi -n -s /tmp/nginx9010.socket -u www-data -g www-data -f /usr/bin/php5-cgi -C 6

如何从spawn-fcgi使用脚本的命令行进行测试?

例如,我在 /home/ubuntu/test.php 中有一个脚本

我在使用 nginx 并执行 php 脚本时遇到问题。它提示下载。

#!/usr/bin/php在文件中也做了一个chmod a+x

谢谢

4

3 回答 3

1
  • 要测试 FastCGI 后端,您可以尝试创建 CGI 环境并使用 cgi-fcgi 连接到后端
  • 您可以附加 strace 以查看后端的功能(例如,它是否甚至接收到来自 Web 服务器的请求);使用 -ff 附加到主进程以查看所有工作人员的系统调用
  • FastCGI 模式下的 php5-cgi 不需要 shebang 行或文件上的 +x - 它不使用内核来执行它们,它只是将它们作为简单文件加载
  • Firefox(可能还有其他浏览器)通常会缓存 mime 类型,因此即使您解决了问题,您也会看到下载提示。使用 curl 进行测试!
于 2013-01-22T12:44:49.867 回答
0

nginx 不会提供它传递给 php 的文件,nginx 只提供静态文件,所以如果它正在下载 php 文件,您可能需要检查您是否将 php 文件发送到正确的位置,您是否使用 IP 和 PORT在配置文件的 php 位置块中?

在回家的火车上,我只能猜测我的头顶。

于 2013-01-09T16:36:34.913 回答
0

FWIW,像 nginx 提供要下载的文件这样的问题是由于 Nginx 自己提供文件而不将它们发送到 fastcgi 后端,通常是因为与 uri 匹配try_files或错误的块匹配。location {}

于 2013-02-25T12:10:57.120 回答