2012-03-01 63 views
0

我已经安装了lighthhtpd服务器来执行php和python文件......但是当我运行一个.py文件时,它会弹出一个下载窗口到该文件。从lighhttpd访问python文件

这里是我把已经在CGI的conf文件

cgi.assign     = (".py" => "/usr/bin/python2.6", 
          ".php" => "/usr/bin/php-cgi") 

任何人都知道怎么做才能解决这个问题有Python文件上lighthttpd工作?

谢谢。

+0

我很长一段时间没有使用lighttpd,但我认为嫌疑人可能是错误的元类型,无法解释,因此下载。它应该是HTML和PHP的'text/html',但不要问我该怎么做......我徘徊到nginx。 – Paul 2012-03-01 12:25:50

+0

你的.py文件对lighthhtpd进程有执行权限吗? – SpliFF 2012-03-01 12:28:59

+0

是的,他们有权限 – dyoser 2012-03-01 12:45:29

回答

1

尝试将.py文件放在cgi-bin目录中,然后从那里运行它们。如果我没有记错,lighttpd配置只允许cgi-bin目录中的cgi脚本。如果可能,请张贴您的整个cgi.conf

如果有效,请找到类似$HTTP["url"] =~ "^/cgi-bin" { (...) }的代码段并移除周围的匹配块。

当您立即下载文件时,里面有什么?它是那里Python脚本的实际来源,还是文本中预期的执行输出?我猜这是更早的,如果不是,请澄清。

+0

是的,lighttpd在cgi目录中工作...并且cgi.conf没有比上面更多的特殊行。谢谢。 – dyoser 2012-03-02 09:33:43

1

感谢您的意见和答案...的解决方案是在第一线插入下面的命令:

print ("Content-Type: text/plain;charset=utf-8 \n") 

我使用Python 3.1的光......当我设置第一行中脚本将其正确打印出来。

+0

这对我有用。虽然我发誓我得到了python/lighttpd以前的工作,而不必这样做。 – LoveMeSomeCode 2014-03-20 00:01:27