журнал ошибок apache2. Вызвать 'site.addsitedir ()' не удалось из-за '(null)', остановка - PullRequest
0 голосов
/ 04 мая 2018

Я бы хотел подключить Python и сервер Apache 2 в Ubuntu.

Поэтому необходимо ввести следующий код сервера Ubuntu.

pip install Django

sudo apt-get install appache2

sudo apt-get install libapache2-mod-wsgi-py3

Затем я создал проект Python и папку приложения как Python venv.

Код для Apache 2 000-default.conf выглядит следующим образом:

<virtualhost *:80>
WSGIDaemonProcess bot python-path=/home/ubuntu/Django/bot:/home/ubuntu/Django/myvenv/lib/python3.5/site-packages
ServerAdmin webmaster@localhost
WSGIScriptAlias /52.78.108.223 /home/ubuntu/Django/bot/wsgi.py
<Directory /home/ubuntu/Django/bot>
<Files wsgi.py>
        Require all granted
</Files>
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</virtualhost> 

Местоположение правильное. Мисс не набирается.

Первый аргумент «WSGIScriptAlias ​​/» должен быть пустым, но если вы поместите его в пустое пространство, вы не увидите страницу «он прошел», когда вы нажмете этот IP. Поэтому я поставил внешний IP сервера. Тогда все прошло хорошо.

Просмотр журнала ошибок Apache 2.

[среда, 02 мая 21: 32: 28.100569 2018] [wsgi: warn] [pid 22648: tid 140282945054592] mod_wsgi: скомпилировано для Python / 3.5.1 +.

[Ср 02 мая 21: 32: 28.100633 2018] [wsgi: warn] [pid 22648: tid 140282945054592] mod_wsgi: время выполнения с использованием Python / 3.5.2.

[Ср 02 мая 21: 32: 28.101406 2018] [mpm_event: note] [pid 22648: tid 140282945054592] AH00489: Apache / 2.4.18 (Ubuntu) mod_wsgi / 4.3.0, настроенный Python / 3.5.2 - возобновление нормальные операции

[ср. 02 мая 21: 32: 28.101426 2018] [core: note] [pid 22648: tid 140282945054592] AH00094: Командная строка: '/ usr / sbin / apache2'

[Ср 02 мая 21: 32: 28.191175 2018] [wsgi: error] [pid 22651: tid 140282945054592] mod_wsgi (pid = 22651): вызов метода site.addsitedir () не выполнен для '(null)', остановка.

[ср. 02 мая 21: 32: 28.192041 2018] [wsgi: ошибка] [pid 22651: tid 140282945054592] mod_wsgi (pid = 22651): сбой вызова site.addsitedir () для / home / ubuntu / Джанго / myvenv / Библиотека / python3.5 / сайт-пакеты.

[ср. 02 мая 21: 33: 21.733277 2018] [mpm_event: уведомление] [pid 22648: tid 140282945054592] AH00494: получено SIGHUP. Попытка перезагрузки

[ср. 02 мая 21: 33: 21.787095 2018] [wsgi: warn] [pid 22648: tid 140282945054592] mod_wsgi: скомпилировано для Python / 3.5.1 +.

[ср. 02 мая 21: 33: 21.787410 2018] [wsgi: warn] [pid 22648: tid 140282945054592] mod_wsgi: время выполнения с использованием Python / 3.5.2.

[Ср 02 мая 21: 33: 21.788397 2018] [mpm_event: note] [pid 22648: tid 140282945054592] AH00489: Apache / 2.4.18 (Ubuntu) mod_wsgi / 4.3.0, настроенный Python / 3.5.2 - возобновление нормальные операции

[ср. 02 мая 21: 33: 21.788447 2018] [core: note] [pid 22648: tid 140282945054592] AH00094: Командная строка: '/ usr / sbin / apache2'

[Ср 02 мая 21: 33: 21.860854 2018] [wsgi: error] [pid 22781: tid 140282945054592] mod_wsgi (pid = 22781): вызов метода site.addsitedir () не выполнен для '(null)', остановка.

[Ср 02 мая 21: 33: 21.860889 2018] [wsgi: error] [pid 22781: tid 140282945054592] mod_wsgi (pid = 22781): сбой при вызове site.addsitedir () для / home / ubuntu / Джанго / myvenv / Библиотека / python3.5 / сайт-пакеты.

Получается так.

Я искал в интернете. Говорят, что версия wsgi низкая.

Однако wsgi, используемый apache2, может быть установлен только с помощью 'sudo apt-get install libapache2-mod-wsgi-py3'.

Журнал ошибок Apache 2 показывает, что версия wsgi - 4.3.0.

Если вы устанавливаете последнюю версию wsgi с помощью 'pip install mod-wsgi', журнал ошибок Apache 2 покажет 4.3.0.

'Не удалось вызвать' site.addsitedir () 'для' (null) ', остановка.' Журнал ошибок все еще появляется.

Как мне устранить эту ошибку?

1 Ответ

0 голосов
/ 04 мая 2018

Не используйте mod_wsgi 4.3.0. Он очень старый и имеет проблему с памятью, когда несколько каталогов выдано python-path. Альтернативное использование:

WSGIDaemonProcess bot python-home=/home/ubuntu/Django/myvenv python-path=/home/ubuntu/Django/bot

Вы не должны использовать site-packages с python-path. Это не рекомендуемый способ и не было с момента mod_wsgi 3.3.

Подробнее об использовании виртуальных сред см .:

Если после использования pip install mod_wsgi он не показывает последнюю версию mod_wsgi, это потому, что вы не отключили / не удалили системный пакет mod_wsgi. Вам также потребуется вручную настроить Apache для загрузки нового mod_wsgi, запустив mod_wsgi-express module-config, получив выходные данные и добавив его в конфигурацию Apache.

...