Apache обслуживает неправильный проект Django - PullRequest
0 голосов
/ 13 июня 2019

Я создал два проекта 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

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