如何使用spawn-fcgi从命令行测试php文件

时间:2013-01-09 10:23:04

标签: php nginx spawn-fcgi

我有一个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正在使用脚本?

e.g。我在/home/ubuntu/test.php

中有一个脚本

我遇到nginx和执行php脚本的问题。它会提示下载。

我在文件中有#!/usr/bin/php并且也做了chmod a+x

由于

3 个答案:

答案 0 :(得分:0)

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

在火车回家的时候,只能猜到我的头顶。

答案 1 :(得分:0)

  • 为了测试FastCGI后端,您可以尝试创建CGI环境并使用cgi-fcgi连接到后端
  • 您可以使用strace附加以查看后端的作用(例如,它是否甚至从Web服务器接收请求);附加-ff到主进程以查看所有worker的系统调用
  • 在FastCGI模式下的php5-cgi不需要shebang行也不需要+ x文件 - 它不使用内核来执行它们,它只是将它们作为简单文件加载
  • Firefox(也可能是其他浏览器)经常缓存mime类型,因此即使修复了问题,您也会看到下载提示。 使用curl进行测试!

答案 2 :(得分:0)

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