I'm trying to host a WSGI application (written in webpy, hosted on Apache) on Ubuntu server. Whenever I run my application, the JSON response gets downloaded instead of getting displayed in the browser. The same application is however working fine on localhost. Here is the code of the WSGI application (taken from http://library.linode.com/frameworks/webpy/ubuntu-10.04-lucid) -
import web
import os
import sys
app_path = os.path.dirname(__file__)
sys.path.append(app_path)
os.chdir(app_path)
urls = ('/(.*)', 'hello')
web.debug = False # You may wish to place this in a config file
app = web.application(urls, globals(), autoreload=False)
application = app.wsgifunc() # needed for running with apache as wsgi
class hello:
def GET(self, name):
if not name:
name = 'World'
return 'Hello, ' + name + '!'
if __name__ == "__main__":
app.run()
My apache configuration settings are -
WSGIScriptAlias /project /var/www/mywebsite.com/htdocs/project/main.py
<Directory /var/www/mywebsite.com/htdocs/project>
Order deny,allow
Allow from all
SetHandler wsgi-script
Options ExecCGI
</Directory>
When from the browser, I go to www.mywebsite.com/project/ then a file with "Hello, World!" written in it gets downloaded.
However, when I go to www.mywebsite.com/project then I get the message "Not Found"