Конфигурирование Apache / 2.4.10 mod_wsgi и virtualenv python 3.6 для flask 1.0.3 в Debian 8.11 - PullRequest
1 голос
/ 24 февраля 2020
Файл конфигурации

my apache содержит:

<VirtualHost *:80> 

ServerName localhost
WSGIDaemonProcess tasks4 python-path=/home/user1/Projects/tasks/tasks/tasks/wsgi.py:/home/user1/env_rt_dms:/home/user1/env_rt_dms/lib/python3.6/site-packages
WSGIScriptAlias / /home/user1/Projects/tasks/tasks/tasks/wsgi.py

WSGIPassAuthorization On

Alias /rt1 /home/user1/Projects/tasks/tasks/tasks/static/

<Directory /home/user1/Projects/tasks/tasks>
    DirectoryIndex index.html
    WSGIProcessGroup tasks4
    WSGIApplicationGroup %{GLOBAL}
    WSGIScriptReloading On
    Require all granted
</Directory>
</VirtualHost>

файл wsgi:

#! /home/user1/env_rt_dms/bin
import sys, os

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

os.environ['DB_URL']="postgresql://usernm:passwd1@localhost:5432/my_db"

from tasks import app as application
application.secret_key = '\x04\xf5\\VN:\xb7\xb9\xca\x95\xa3m!4@\x17\xfcg\xe5\xe2q\x05'

URL-адрес браузера после активации веб-сервера apache: http://localhost/rt1 выдает ошибку 404

Журнал apache показывает: mod_wsgi: скомпилировано для Python / 3.4.2 в качестве предупреждения. Пожалуйста, дайте мне знать, что мне нужно исправить, чтобы эта конфигурация работала?

1 Ответ

0 голосов
/ 02 марта 2020

python-home должна быть установлена ​​опция директивы WSGIDaemonProcess.

Активировать виртуальную среду, в которой на терминале установлено mod_wsgi.

Команда запуска, python -c "import sys; print(sys.prefix)" на терминале, скопируйте вывод и установите его для опции python-home.

WSGIDaemonProcess tasks4 python-path=/home/user1/Projects/tasks/tasks/tasks python-home=<sys_prefix_value_in_virtual_env>

Удалите ручную активацию виртуальной среды в модуле wsgi.py.

#!/usr/bin/env python

import sys, os

os.environ['DB_URL']="postgresql://usernm:passwd1@localhost:5432/my_db"

from tasks import app as application
application.secret_key = '\x04\xf5\\VN:\xb7\xb9\xca\x95\xa3m!4@\x17\xfcg\xe5\xe2q\x05'

Посмотрите на опцию python-path и убедитесь, что /home/user1/Project/tasks/tasks/tasks является root папкой вашего проекта.

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