I'm trying to deploy a hello flask app to a raspberry pi using lighttpd fastCGI.
I followed the instructions on the http://flask.pocoo.org/docs/0.10/deploying/fastcgi/ to the best of my ability
Here is my flask app (/var/www/demoapp/hello.py)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World From Flask Yeh!"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
And here is my .fcgi file (/var/www/demoapp/hello.fcgi)
#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from yourapplication import app
if __name__ == '__main__':
WSGIServer(app).run()
And here is what I added to my /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/",
)
I get a 404 Not Found error
By the way what is the /tmp/hello-fcgi.sock where do I get this file
Please help. I'm essentially trying to find a simple way to deploy flask on my raspberry pi web server. I have tried several methods. The fastcgi seemed to be the easiest. If there is an easier way then let me know please.
Thank you
Vincent
I believe the problem is that in your hello.fcgi file, you are importing a module named yourapplication
, however, the flask application you created is named hello
.
Try changing this line:
from yourapplication import app
to
from hello import app
Edit: Also - double check your url when testing - since your @app.route
is set to the root, you must include the trailing slash in your url, eg:
http://xxx.xxx.x.xx/hello.fcgi/
and not
http://xxx.xxx.x.xx/hello.fcgi
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With