Я создал два проекта Django, используя virtualenv, и обслуживал эти два проекта с Apache2, используя wsgi и два виртуальных хоста в Ubuntu 18.04.Если я настраиваю оба виртуальных хоста в одном файле .conf, то проекты работают нормально, но если я разделю один файл .conf на два файла, по одному для каждого виртуального хоста, тогда будет работать только первый хост (в алфавитном порядке), для второго хоста Apache пытаетсячтобы искать файлы в папках первого проекта Django.
Я использую Ubuntu 18.04, с Python 3.6 и Django 2.2.2 с Apache 2.4.29.Эта проблема обсуждается в блогах разными людьми, и я попробовал это решение, но, похоже, мне ничего не помогло.
Следующий единственный файл конфигурации работает нормально:
<VirtualHost *:80>
ServerName virenvtst.tst
ServerAdmin webmaster@virenvtst.tst
DocumentRoot /var/www/html
Alias /static /home/raza/projects/virenvtest/static
<Directory /home/raza/projects/virenvtest/static>
Require all granted
</Directory>
<Directory /home/raza/projects/virenvtest/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-home=/home/raza/projects/virenvtest/virenvtestenv python-path=/home/raza/projects/virenvtest
WSGIProcessGroup myproject
WSGIScriptAlias / /home/raza/projects/virenvtest/myproject/wsgi.py
<Location />
WSGIProcessGroup myproject
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName djsample.tst
ServerAdmin webmaster@djsample.tst
DocumentRoot /var/www/html
Alias /static /home/raza/projects/djsample/static
<Directory /home/raza/projects/djsample/static>
Require all granted
</Directory>
<Directory /home/raza/projects/djsample/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mysite python-home=/home/raza/projects/djsample/djsampleenv python-path=/home/raza/projects/djsample
WSGIProcessGroup mysite
WSGIScriptAlias / /home/raza/projects/djsample/mysite/wsgi.py
<Location />
WSGIProcessGroup mysite
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Когда я разделяю этот код на два отдельных файла, тогда djsample.tst имеет преимущество, и когда я пытаюсь запустить virenvtest.tst, яполучить сообщение об ошибке, где Apache пытается найти файлы в проекте djsample.Я получаю следующий ответ, вместо страницы по умолчанию Django:
Я получаю следующий вывод:
DisallowedHost в / Недопустимый заголовок HTTP_HOST: 'virenvtest.tst'.Вам может понадобиться добавить virenvtest.tst в ALLOWED_HOSTS.Метод запроса: GET URL запроса: http://virenvtest.tst/ Версия Django: 2.2.2 Тип исключения: DisallowedHost Значение исключения:
Неверный заголовок HTTP_HOST: 'virenvtest.tst'.Вам может понадобиться добавить virenvtest.tst в ALLOWED_HOSTS.Расположение исключения: /home/raza/projects/djsample/djsampleenv/lib/python3.6/site-packages/django/http/request.py в get_host, строка 111 Исполняемый файл Python: / usr / bin / python3 Версия Python: 3.6.7 Python Path:
['/ home / raza / projects / djsample', '/home/raza/projects/djsample/djsampleenv/lib/python36.zip', '/ home / raza / projects / djsample / djsampleenv /lib / python3.6 ',' /home/raza/projects/djsample/djsampleenv/lib/python3.6/lib-dynload ',' /usr/lib/python3.6 ',' / home / raza / projects / djsample/djsampleenv/lib/python3.6/site-packages '] Время сервера: чт, 13 июня 2019 г. 13:59:51 + 0000