Python lighttpd和覆盆子pi上的烧瓶部署

Python lighttpd和覆盆子pi上的烧瓶部署,python,flask,raspberry-pi,lighttpd,Python,Flask,Raspberry Pi,Lighttpd,我正在尝试使用lighttpd fastCGI将hello flask应用程序部署到raspberry pi 我尽我所能地按照上面的指示去做 这是我的烧瓶应用程序(/var/www/demoapp/hello.py) 这是我的.fcgi文件(/var/www/demoapp/hello.fcgi) 下面是我添加到/etc/lighttpd/lighttpd.conf的内容 fastcgi.server = ("/hello.fcgi" => (( "socket"

我正在尝试使用lighttpd fastCGI将hello flask应用程序部署到raspberry pi

我尽我所能地按照上面的指示去做

这是我的烧瓶应用程序(/var/www/demoapp/hello.py)

这是我的.fcgi文件(/var/www/demoapp/hello.fcgi)

下面是我添加到/etc/lighttpd/lighttpd.conf的内容

fastcgi.server = ("/hello.fcgi" =>
    ((
        "socket" => "/tmp/hello-fcgi.sock",
        "bin-path" => "/var/www/demoapp/hello.fcgi",
        "check-local" => "disable",
        "max-procs" => 1
    ))
)

alias.url = (
    "/static/" => "/var/www/demoapp/static/",
)
我得到一个404未找到错误

顺便问一下,什么是/tmp/hello-fcgi.sock我从哪里得到这个文件

请帮忙。我实际上是想找到一种在我的raspberry pi web服务器上部署flask的简单方法。我试过几种方法。fastcgi似乎是最简单的。如果有更简单的方法,请告诉我

多谢各位


Vincent

我认为问题在于,在hello.fcgi文件中,您正在导入名为
yourapplication
的模块,但是,您创建的flask应用程序名为
hello

尝试更改此行:

从应用程序导入应用程序
来自hello导入应用程序

编辑:同时-测试时仔细检查您的url-由于您的
@app.route
设置为根目录,因此必须在url中包含尾随斜杠,例如:

而不是


首先,正如c_to the_k所说,您需要在
hello.fcgi
文件中将
应用程序更改为
hello

我发现烧瓶文档中缺少说明。它建议阅读这一页,我也一样

页面底部有一个lighttpd.conf示例

fastcgi.server = ("/hello.fcgi" =>
    ((
        "socket" => "/tmp/hello-fcgi.sock",
        "bin-path" => "/var/www/demoapp/hello.fcgi",
        "check-local" => "disable",
        "max-procs" => 1
    ))
)

alias.url = (
    "/static/" => "/var/www/demoapp/static/",
)
我遵循了烧瓶文档和上面页面中的混合说明。我将
.fcgi
文件重命名为
.py
,如Lightty文档所示

如果采用这种方法,就不必担心.sock文件。这是lighttpd使用UNIX套接字与FastCGI进程通信的老方法。它只需要在这里,这样配置解析器就不会被破坏

我在lighttpd.conf中使用了以下内容。否则,您的其他文件看起来很好。 (注意,这会将你的应用置于
/hello
下,而不是
/


我也有同样的问题。。。你找到什么了吗?快速cgi很老了。选择wsgi。古尼康是你的朋友。Apache在某些项目中工作良好。
fastcgi.server = ("/hello.fcgi" =>
    ((
        "socket" => "/tmp/hello-fcgi.sock",
        "bin-path" => "/var/www/demoapp/hello.fcgi",
        "check-local" => "disable",
        "max-procs" => 1
    ))
)

alias.url = (
    "/static/" => "/var/www/demoapp/static/",
)
fastcgi.server = (
    "/hello" =>
    (
        "python-fcgi" =>
        (
         "socket" => "/tmp/fastcgi.python.socket",
         "bin-path" => "/var/www/demoapp/hello.py",
         "check-local" => "disable",
         "max-procs" => 1,
        )
    )
)