如何使Python与Lighttpd配合使用?


25

我已经在Raspberry Pi上安装了Lighttpd,但是现在我想让服务器端代码正常工作。我熟悉PHP,但是我认为应该尝试使用Python,因为它应该是Raspberry Pi的“入门语言”。如何通过Lighttpd使Python处理服务器端代码?


penzilla.net/tutorials/python/cgi链接已损坏,但感谢您的出色写作。我的Pi明天到!

Answers:


16

您需要的是对lighttpd的CGI支持。

打开lighttpd配置文件(/etc/lighttpd/lighttpd.conf),然后取消注释“ mod_cgi”行(如果存在,请从该行的开头删除#),或者添加该行(如果不存在)。

server.modules = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
            "mod_auth",
            "mod_ssi",
            "mod_cgi",
            "mod_compress",
            "mod_fastcgi",
            "mod_rewrite",
            "mod_magnet",
)

将以下内容添加到文件的底部:

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

重新启动lighttpd守护程序:

sudo service lighttpd force-reload

然后在您的Web服务器的根目录下创建一个cgi-bin目录。此目录中所有以.py结尾的文件都将由Python处理。

现在,您可以编写Python脚本来处理Web请求。您可能需要阅读有关使用Python编写CGI程序的教程。

如果在另一方面,你宁愿用一个框架来处理一些低级别的细节,提高开发人员的效率,我建议您查看web.py。您可以使用apt安装它:

sudo apt-get install python-webpy

Cloud 101 Blog上的Lucas发布了一篇有关使用webpy框架编写网页的出色教程


这是FastCGI还是CGI?
马克·英格拉姆

请注意,普通CGI要求为每个请求启动python解释器,因此它仅非常适合偶尔的请求。
托尔比约恩Ravn的安德森

this,这只能部分起作用。我现在可以通过调用“ http://(IP)/cgi-bin/test.py?parameter=xxx”而不是“ http://(IP)/cgi-bin/test.cgi?parameter=xxx”运行python “-稍后给出404错误...
576i 2014年

@ 576i尝试将以下行cgi.assign =(“ .py” =>“ / usr / bin / python”)更改为cgi.assign =(“ .cgi” =>“ / usr / bin / python”)
Steve Robillard

1
@ 576i而不是在其他问题的评论中继续进行此讨论,请打开一个新问题,并提供有效的方法以及您尝试过的方法。然后,我将删除这些评论。顺便说一句,为什么您不能只使用.py扩展名(您说的可行)呢?
史蒂夫·罗比拉德

3

接受的答案对我不起作用,它也忽略了可用于Lighttpd的预配置软件包。

在Raspberry的Lighttpd上安装Python的正确方法是:

首先通过以下方式启用cgi

sudo lighttpd-enable-mod cgi

这将为Lighttpd创建一个新的配置文件:

/etc/lighttpd/conf-enabled/10-cgi.conf

编辑配置文件nano /etc/lighttpd/conf-enabled/10-cgi.conf,看起来与此类似

server.modules += ( "mod_cgi" )

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

通过执行以下命令确保安装了python 2:

/usr/bin/python --version

现在,重新启动

sudo /etc/init.d/lighttpd force-reload

祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.