Tkingovr
Tkingovr

Reputation: 1418

mod_wsgi configuration with flask

I have a problem with mod_wsgi and flask Im not sure what it is after almost 48 hours of trying I've finally given up and need some help. Everything seems fine and working properly I know this because my www.example.com domain routes to example.com/login if the user is not logged in.

When I access example.com the routing does happen and I can see the url change to example.com/login

Here is my configuration:

killerapp.wsgi:

from main import app as application

and the apache virtual host:

NameVirtualHost *:8080
<VirtualHost *:8080>
 ServerName example.com

 WSGIDaemonProcess killerapp user=apache group=apache threads=5
 WSGIScriptAlias / /var/www/wsgi/killerapp.wsgi

  <Directory /var/www/wsgi>
     WSGIProcessGroup killerapp
     WSGIApplicationGroup %{GLOBAL}
     Order deny,allow
     Allow from all
  </Directory>
</VirtualHost>

I was getting the following error all along

ImportError: No module named app

when I did

chmod 755 app

on the app folder I got the following in the log file indicating no errors:

[Wed Nov 06 17:25:29 2013] [info] [client xx.xx.x.xxx] mod_wsgi (pid=3823, process='killerapp', application=''): Loading WSGI script '/var/www/wsgi/killerapp.wsgi

But i still get the following error when I access the page:

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

I suspect its a ownership/security issue but that's just my guess I wouldn't know at this point. If its of any help Im running python 2.6.6 on Centos 6.4 and mod_wsgi 3.2.3

Any help would really be appreciated. Thank you

Upvotes: 4

Views: 1486

Answers (1)

Tkingovr
Tkingovr

Reputation: 1418

With many thanks to Mark Hildreth for showing me the 'way' I managed to finally see what the problem was. It was a permission issue

In my python app I turned on debugging after initializing the flask app like so:

app = Flask(__name__)
app.debug = True

This allowed Flask to display the error messages in the apache error log. In my case the problem was Jinja was unable to access the templates directory because the apache user was not set as owner of that directory so the following fixed it:

chown apache:apache templates

Once again credit and thanks goes to Mark Hildreth for showing me the light!

Upvotes: 3

Related Questions