Lighttpd CGI 下载 .py 而不是运行它

Lighttpd CGI 下载 .py 而不是运行它

我在lighttpd中有两个CGI测试脚本。

当我打开 Bash http://host/cgi-bin/test.shURL 时,我从脚本获得了有效的响应。

但是当我打开 Python 时,http://host/cgi-bin/test.py文件是在浏览器中下载的,而不是由 CGI 模块运行。

如何让 Bash 和 Python 在 CGI 中工作?

我在 lighttpd.conf 中的 CGI 配置:

server.modules              = (
                                "mod_access",
                                "mod_cgi",
                                "mod_accesslog" )

cgi.assign = ( ".sh" => "/bin/bash", 
               ".py" => "/usr/bin/python" )

$HTTP["url"] =~ "^/cgi-bin/" {
    cgi.assign = (  ".sh" => "/bin/bash", 
                    ".py" => "/usr/bin/python" )
}

两个文件具有相同的权限,并按预期从命令行执行。

$ ls -l /www/pages/cgi-bin/
total 8
-rwxr-xr-x 1 root root 96 May  8 12:27 test.py
-rwxr-xr-x 1 root root 19 May  8 12:19 test.sh

$ cat test.sh         
#!/bin/bash                                                 
echo Hi from Bash                                           
                                                            
$ cat test.py         
#!/usr/bin/python                                           
print "Hi from Python"                                      
$                     

答案1

确保在更改配置后重新启动了 lighttpd 服务器。

killall -USR1 lighttpd

另外,请确保清除浏览器的缓存,或者在隐私浏览或隐身窗口中进行测试。或者在另一台机器上进行测试。或者使用命令行客户端进行curl测试。

相关内容