Конфигурация mod_wsgi с флягой

У меня проблема с mod_wsgi и flask. Я не уверен, что это такое, после почти 48 часов попыток я, наконец, сдался и нуждаюсь в помощи. Все выглядит нормально и работает правильно. Я знаю это, потому что мой домен www.example.com перенаправляется на example.com/login, если пользователь не вошел в систему.

Когда я обращаюсь к example.com, маршрутизация происходит, и я вижу, что URL-адрес меняется на example.com/login.

Вот моя конфигурация:

killerapp.wsgi:

from main import app as application

и виртуальный хост apache:

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>

Я все время получал следующую ошибку

ImportError: No module named app

когда я сделал

chmod 755 app

в папке приложения я получил в файле журнала следующее, указывающее на отсутствие ошибок:

[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

Но я все еще получаю следующую ошибку при доступе к странице:

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.

Я подозреваю, что это проблема владения/безопасности, но это только мое предположение, которое я не знаю на данный момент. Если это поможет, я запускаю python 2.6.6 на Centos 6.4 и mod_wsgi 3.2.3.

Любая помощь будет действительно оценена. Спасибо


person Tkingovr    schedule 06.11.2013    source источник
comment
Похоже, у вас есть журнал для Apache, но нет журнала для Flask (где, скорее всего, и возникает ошибка). Если вы включите ведение журнала flask, вы сможете определить проблему. В противном случае попробуйте запустить приложение в режиме отладки, чтобы увидеть эти ошибки в вашем браузер.   -  person Mark Hildreth    schedule 06.11.2013
comment
Отметьте, что вы спасаете жизнь ... Я не знаю, как или почему отладка приложения flask не пришла мне в голову! это ошибка разрешения, jinja не может получить доступ к шаблонам в папке шаблонов. Если вы можете написать то, что вы предложили в качестве ответа, я отмечу его как правильный. Большое спасибо, очень ценю это .. Спасибо!   -  person Tkingovr    schedule 06.11.2013
comment
Вы можете сами написать ответ, показать, что вы сделали, чтобы включить ведение журнала или режим отладки.   -  person Mark Hildreth    schedule 06.11.2013


Ответы (1)


Большое спасибо Марку Хилдрету за то, что он показал мне «путь», и мне наконец удалось понять, в чем проблема. Это была проблема с разрешением

В моем приложении python я включил отладку после инициализации приложения фляги следующим образом:

app = Flask(__name__)
app.debug = True

Это позволило Flask отображать сообщения об ошибках в журнале ошибок Apache. В моем случае проблема заключалась в том, что Jinja не смог получить доступ к каталогу шаблонов, потому что пользователь apache не был установлен в качестве владельца этого каталога, поэтому это было исправлено следующим образом:

chown apache:apache templates

Еще раз спасибо и спасибо Марку Хилдрету за то, что он показал мне свет!

person Tkingovr    schedule 06.11.2013