2016-11-19 3 views
-1

Я пытаюсь выяснить, как разместить второй веб-сайт Django с моей виртуальной машины, и мне интересно, может ли кто-нибудь увидеть, где Я сделал очевидные ошибки.Настройка VirtualHost для запуска второго веб-сайта, проблема с <VirtualHost *: 8080>, ошибка с `Listen`

В настоящее время на каком-либо участке установлено <VirtualHost *:80> работ. Я узнал от this answer, что я должен указать второй веб-сайт на <VirtualHost *:8080>. Однако, когда я пытаюсь использовать Listen я получаю ошибку ниже, когда я пытаюсь перезагрузить Apache

Работа для apache2.service не удалось. Подробнее см. «Состояние systemctl apache2.service» и «journalctl -xn».

  • ли кто-нибудь понять, что может быть неправильно?

  • Почему <VirtualHost *:80>, но не <VirtualHost *:8080>?

  • И почему я получаю ошибку, когда указываю Listen?

Я использую Debian 8.5, Apache 2.4.10 и mod-wsgi 4.3.0-1.

Listen 80 
<VirtualHost *:80> 

ServerName myserver.scss.tcd.ie/bias_experiment/ 

Alias /bias_experiment/static/ /var/www/bias_experiment/static/ 
<Directory /var/www/bias_experiment/static> 
Order deny,allow 
Allow from all 
</Directory> 

WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi 
<Directory /var/www/bias_experiment/src/bias_experiment> 
<Files index.wsgi> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

</VirtualHost> 


Listen 8080 
<VirtualHost *:8080> 

ServerName myserver.scss.tcd.ie/bias_experiment_two/ 

Alias /bias_experiment_two/static/ /var/www/bias_experiment_two/static/ 
<Directory /var/www/bias_experiment_two/static> 
Order deny,allow 
Allow from all 
</Directory> 

WSGIScriptAlias /bias_experiment_two /var/www/bias_experiment_two/src/bias_experiment/index.wsgi 
<Directory /var/www/bias_experiment_two/src/bias_experiment> 
<Files index.wsgi> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

</VirtualHost> 

Любая помощь, как всегда, очень ценится.

+0

Вы следовали этим инструкциям, чтобы узнать, что не так? Что он сказал? –

ответ

2

Вы не можете установить ServerName так же, как и вы. Директива ServerName должна быть именем хоста, иначе только виртуальные хосты с именованным именем не будут работать, если у вас есть несколько определений VirtualHost. Единственная причина, по которой что-либо будет обрабатываться вообще, заключается в том, что, когда виртуальные хосты на основе имени не настроены правильно или нет имени хоста, Apache отправит запросы на первый VirtualHost, обнаруженный при чтении конфигурации. То, что вы должны делать, - это все в одном VirtualHost, если вы хотите, чтобы у них был доступ через одно и то же имя хоста. Использование разных портов может быть использовано, но менее удобно.

<VirtualHost *:80> 

ServerName myserver.scss.tcd.ie 

WSGIDaemonProcess bias_experiment 

Alias /bias_experiment/static/ /var/www/bias_experiment/static/ 
<Directory /var/www/bias_experiment/static> 
Order deny,allow 
Allow from all 
</Directory> 

WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi \ 
    process-group=bias_experiment application-group=%{GLOBAL} 

<Directory /var/www/bias_experiment/src/bias_experiment> 
<Files index.wsgi> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

WSGIDaemonProcess bias_experiment_two 

Alias /bias_experiment_two/static/ /var/www/bias_experiment_two/static/ 
<Directory /var/www/bias_experiment_two/static> 
Order deny,allow 
Allow from all 
</Directory> 

WSGIScriptAlias /bias_experiment_two /var/www/bias_experiment_two/src/bias_experiment/index.wsgi \ 
    process-group=bias_experiment_two application-group=%{GLOBAL} 

<Directory /var/www/bias_experiment_two/src/bias_experiment> 
<Files index.wsgi> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

</VirtualHost> 

Чтобы сохранить WSGI приложения разделения, две отдельных группы процесса демона объявлены и каждое приложение WSGI делегированы в другую группу процессов.

двумя приложениями WSGI затем будет доступен как:

Если эти сайты Django, вы, вероятно, будет иметь дополнительные настройки изменения вам нужно будет сделать в файл настроек Django, чтобы они могли работать под одним именем хоста и не мешать друг другу.

+0

Спасибо Грэм. Я обновил все (я думаю) в path.py пути к файлам, SITE_ID и т. Д. Спасибо за советы и за то, что они показали мне, как правильно это сделать с WSGIDaemonProcesses, мой план состоял в том, чтобы заставить его работать без них (согласно вашему раннему ответу Я ссылался), а затем попытаюсь понять их.Еще раз спасибо – Deepend

+1

Важным, о котором я думаю, является '' SESSION_COOKIE_PATH''. https://docs.djangoproject.com/en/1.10/ref/settings/#session-cookie-path –

+0

Спасибо, я только что добавил это сейчас. Я вообще об этом не знал. – Deepend