Как развернуть приложение Django VPS с помощью Apache2?
Я следовал этому руководству, которое рекомендовано различными учебниками для развертывания Django.
Это содержимое моего файла 000-default.conf.
ОБНОВЛЕННЫЙ файл ".conf"
<VirtualHost *:80>
Alias /static /home/myproject/static
<Directory /home/myproject/static>
Require all granted
</Directory>
<Directory /home/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-home=/home/myproject/myprojectenv python-path=/home/myproject/myprojectenv/lib/python2.7/site-packages
WSGIProcessGroup myproject
WSGIScriptAlias / /home/myproject/myproject/wsgi.py
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Это мой первый опыт развертывания веб-приложения Django на VPS, который оснащен "ubuntu-16.04-64bit".
Я могу получить приложение "myproject" Django, в то время как virtualenv активирован и с сервером по умолчанию Django:
./manage.py runserver 0.0.0.0:8000
и может успешно открыть приложение myproject с помощью my_ip, который представлен "xx.xxx.xxx.xx" и портом 8000.
http://xx.xxx.xxx.xx:8000
Хотя после деактивации virtualenv и настройки сервера apache2, как описано в данном руководстве, он не работает.
Как говорится в руководстве, после успешной установки и настройки приложения Django на сервере оно должно работать только с вашим IP-адресом, например:
http://xx.xxx.xxx.xx
Который не работает в моем случае, скорее он показывает "Ожидание xx.xxx.xxx.xx...." для бесконечности в браузере.. и страница показывает ошибку, как это..
This site can’t be reached
xx.xxx.xxx.63 refused to connect.
Search Google for 188 167 8000
ERR_CONNECTION_REFUSED
А также это не производит никакого журнала для apache2
ErrorLog /home/error.log
CustomLog /home/access.log combined
Я борюсь с утра, но не удалось, пожалуйста, помогите...
ОБНОВИТЬ
Журнал ошибок Apache2:
[Thu Nov 09 03:38:23.800566 2017] [core:warn] [pid 8823:tid 140238720010112] AH00045: child process 8827 still did not exit, sending a SIGTERM
[Thu Nov 09 03:38:25.802552 2017] [core:warn] [pid 8823:tid 140238720010112] AH00045: child process 8827 still did not exit, sending a SIGTERM
[Thu Nov 09 03:38:27.804431 2017] [core:warn] [pid 8823:tid 140238720010112] AH00045: child process 8827 still did not exit, sending a SIGTERM
[Thu Nov 09 03:38:29.805890 2017] [core:error] [pid 8823:tid 140238720010112] AH00046: child process 8827 still did not exit, sending a SIGKILL
[Thu Nov 09 03:38:30.806571 2017] [mpm_event:notice] [pid 8823:tid 140238720010112] AH00491: caught SIGTERM, shutting down
[Thu Nov 09 03:38:31.551724 2017] [mpm_event:notice] [pid 8960:tid 140082895366016] AH00489: Apache/2.4.7 (Ubuntu) mod_wsgi/3.4 Python/2.7.6 configured -- resuming normal operations
[Thu Nov 09 03:38:31.551837 2017] [core:notice] [pid 8960:tid 140082895366016] AH00094: Command line: '/usr/sbin/apache2'
ImportError: No module named site
ImportError: No module named site
ImportError: No module named site
ImportError: No module named site
ImportError: No module named site
это мой контент "wsgi.py"
"""
WSGI config for myproject project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
application = get_wsgi_application()
1 ответ
Как правильно настроить mod_wsgi в виртуальной среде, смотрите:
Ваша проблема с ImportError: No module named site
похоже, что ваш mod_wsgi не может быть скомпилирован для той же версии Python, которую вы хотите использовать. Увидеть:
как это вариант этой проблемы.
Пройдите все проверки установки в: