Настройка Flask и WSGI с помощью Virtualenv - PullRequest
0 голосов
/ 09 ноября 2018

Я успешно настроил машину Ubuntu 16.04 LTS с Python 3.6, Apache и mod_wsgi. В этой папке установлен virtualenv с установленной Flask.

$ ls -l /var/www/html/odb/
  bin/
  lib/
  include/
  config.wsgi

Файл .wsgi очень прост, как и Apache conf:

$ cat /var/www/html/odb/config.wsgi

  activate_this = '/home/ubuntu/odb/bin/activate_this.py'
  with open(activate_this) as file_:
  exec(file_.read(), dict(__file__=activate_this))

  import sys
  sys.path.insert(0, '/var/www/html/odb/')

  def application(environ,start_response):
      start_response('200 OK',[('Content-type','text/html')])
      return ['Hello world']

$ cat /etc/apache2/sites-available/odb.conf
  <VirtualHost *>
      ServerName example.com

      WSGIDaemonProcess webserver threads=5
      WSGIScriptAlias / /var/www/html/odb/config.wsgi

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

Я могу получить доступ к фиктивной веб-странице. Но когда я изменяю файл .wsgi и добавляю приложение Python Flask, я получаю HTTP 500. Вот файлы:

$ cat /var/www/html/odb/config.wsgi
  activate_this = '/home/ubuntu/odb/bin/activate_this.py'
  with open(activate_this) as file_:
      exec(file_.read(), dict(__file__=activate_this))

  import sys
  sys.path.insert(0, '/var/www/html/odb/')

  from webserver import app as application

$ cat /var/www/html/odb/webserver.py
  from flask import Flask
  app = Flask(__name__)

  @app.route('/')
  def hello_world():
      return 'Hello, World!'

  if __name__ == "__main__":
      app.run(debug=True)

Когда я запускаю приложение через $ flask run --host=0.0.0.0, я могу получить к нему доступ через Интернет, поэтому кажется, что я делаю что-то не так с тем, как я указываю на приложение Flask в файле .wsgi. Что я делаю не так?

Ведение журнала: $ cat /var/log/apache2/*log ничего не дает после HTTP 500. Я замечаю, что /var/www/html/odb/webserver.pyc появляется после HTTP 500, если это может помочь ..?

1 Ответ

0 голосов
/ 09 ноября 2018

Поверьте, вы можете получить эти журналы, также включив 'use_reloader' в команде app.run (),

Ниже от http://flask.pocoo.org/docs/0.12/api/

', если вы не установите Keep in Mind Flask подавит любую ошибку сервера с помощью обычной страницы ошибок, если она не находится в режиме отладки. Таким образом, чтобы включить только интерактивный отладчик без перезагрузки кода>, вы должны вызвать run () с debug = True и use_reloader = False. > Если для use_debugger задано значение True, не находясь в режиме отладки, никаких> исключений не будет перехвачено, потому что их не будет. '

(Извините, не могу комментировать, недостаточно очков)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...