Я пытаюсь развернуть свое веб-приложение для колб с помощью lighttpd. Я создал этот hello.fcgi
файл
#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from hello import app
if __name__ == '__main__':
WSGIServer(app).run()
И файл python hello.py
Я добавил эти строки в конце /etc/lighttpd/lighttpd.conf
. Я хотел, чтобы это было доступно из http://localhost:7777
.
$SERVER["socket"] == ":7777" {
fastcgi.server = ("/hello.fcgi" =>
((
"socket" => "/tmp/hello-fcgi.sock",
"bin-path" => "/var/www/html/py/hello.fcgi",
"check-local" => "disable",
"max-procs" => 1
))
)
alias.url = (
"/static/" => "/var/www/html/py/static"
)
url.rewrite-once = (
"^(/static($|/.*))$" => "$1",
"^(/.*)$" => "/hello.fcgi$1"
)
}
Я также включил включение модулей FastCGI, alias и rewrite. Все файлы моего веб-приложения находятся в папке /var/www/html/py/
, включая hello.py, hello.fcgi и папку «static».
Затем я перезапустил lighttpd и попытался посетить http://localhost:7777
, но мой браузер говорит: «Этот сайт недоступен».
Что здесь не так и как я могу это исправить?
Знаю, что это поздно, но столкнулся с этим при поиске другой проблемы и решил, что опубликую здесь исправление, которое задокументировано в документации Python Flask для Lighttpd.
#!/usr/bin/env python3
from flup.server.fcgi import WSGIServer
from hello import app
class ScriptNameStripper(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
environ['SCRIPT_NAME'] = ''
return self.app(environ, start_response)
app = ScriptNameStripper(app)
if __name__ == '__main__':
WSGIServer(app).run()