Flask и apache настройка wsgi - Python

Узнай цену своей работы

Формулировка задачи:

У меня на хостинге VPS уже установлена django+apache и оно работает. Надо перенастроить на работу с flask. Не получается. У меня нет доступа к конфигу апача, но на хостинге написано, что директива WSGIScriptAlias имеет такой вид:
WSGIScriptAlias / /home/e/example/site1/index.wsgi
В директории уже лежал index.wsgi файл. Я его просто меняю на следующее содержимое
Листинг программы
  1. from myproject import application
  2. if __name__ == "__main__":
  3. application.run()
Ну и в той же корневой директории размещаю файл myproject.py с содержимым
Листинг программы
  1. from flask import Flask
  2. application = Flask(__name__)
  3. @application.route("/")
  4. def hello():
  5. return "<h1 style='color:blue'>Hello There!</h1>"
  6. if __name__ == "__main__":
  7. application.run()
В итоге оно не работает и выдает Internal Server Error и т.д. смотрите типа в логах (к которым у меня доступа нет). Есть доступ по ssh. Пакет flask я там установил с помощью pip. Вот еще на хостинге пишут
Используется mod_wsgi в режиме daemon. Для того, чтобы перезапустить свое приложение, достаточно обновить файл index.wsgi. Например, можно просто выполнить команду в консоли ssh: # cd /home/e/example/site1/ # touch index.wsgi
Первоначальное содержимое index.wsgi было таким
Листинг программы
  1. import os
  2. import sys
  3. import time
  4. import traceback
  5. import signal
  6. activate_this = '/home/s/spyphyru/.virtualenv/bin/activate_this.py'
  7. with open(activate_this) as f:
  8. code = compile(f.read(), activate_this, 'exec')
  9. exec(code, dict(__file__=activate_this))
  10. sys.path.insert(1,'/home/s/spyphyru/proger.site/')
  11. import django
  12. if django.VERSION[1] <= 6:
  13. os.environ['DJANGO_SETTINGS_MODULE'] = 'default_settings'
  14. import django.core.handlers.wsgi
  15. application = django.core.handlers.wsgi.WSGIHandler()
  16. else:
  17. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "default_settings")
  18. from django.core.wsgi import get_wsgi_application
  19. try:
  20. application = get_wsgi_application()
  21. except RuntimeError:
  22. traceback.print_exc()
  23. os.kill(os.getpid(), signal.SIGINT)
  24. time.sleep(2.5)
Если обращаться в тех.поддержку, то что спрашивать?

Решение задачи: «Flask и apache настройка wsgi»

textual
Листинг программы
  1. import os
  2. import sys
  3. import time
  4. import traceback
  5. import signal
  6.  
  7. activate_this = '/home/s/spyphyru/.virtualenv/bin/activate_this.py'
  8. with open(activate_this) as f:
  9.     code = compile(f.read(), activate_this, 'exec')
  10.     exec(code, dict(__file__=activate_this))
  11.  
  12. sys.path.insert(1,'/home/s/spyphyru/test.proger.site')
  13.  
  14. from myproject import application
  15.  
  16. if __name__ == "__main__":
  17.     application.run(debug=True, port=8000)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут