I have a linux apache 2.4.12 and mod_wsgi 4.5.2 (mod_wsgi.so installed into apache) under application account. Apache runs under port 8050 under application account. Following this link to test mod_wsgi working: http://modwsgi.readthedocs.org/en/develop/user-guides/quick-configuration-guide.html#wsgi-application-script-file and I entered my URL: http://mytest.mydomain.com:8050/myapp. It displayed "Hello World", so it indicated my mod_wsgi installation working. Next I tried to see if I can make flask application work.
I created the simple hello.py file under /home/myuserId/wsgi:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
then I created a simple wsgi file as:
import sys, os
sys.path.insert(0, "/home/myuserId/wsgi")
from hello import app as application
then I followed others suggestions including this http://flask.pocoo.org/docs/0.10/deploying/mod_wsgi/ to configure my apache http.conf file with virtualhost as:
<VirtualHost *:8050>
# ServerName www.example.com
WSGIDaemonProcess hello user=appuser group=appuser threads=5
WSGIScriptAlias / /home/myuserId/wsgi/hello.wsgi
<Directory /home/myuserId/wsgi>
WSGIProcessGroup hello
WSGIApplicationGroup %{GLOBAL}
Require all granted
Options +ExecCGI
AddHandler wsgi-script .wsgi
</Directory>
</VirtualHost>
I saved the httpd.conf file and restarted the apache w/o error. When I entered the URL in chrome: http://mytest.mydomain.com:8050/hello or http://mytest.mydomain.com:8050/hello_world, I got this error:
**Not Found**
The requested URL /hello was not found on this server.
Apache/2.4.12 (Unix) mod_wsgi/4.5.2 Python/2.7.9 Server at mytest.mydomain.com port 8050.
My questions are:
- is my configuration wrong?
- what is the right URL for the above hello flask application to use?
- tried
WSGIScriptAlias /hello /home/myuserId/wsgi/hello.wsgi
to mount hello application but not found either. - for flask app, why does conf file have to conf the app in VirtualHost?