2016-11-19 101 views
-1

我試圖弄清楚如何從我的VM主機上的第二Django的網站,我想知道是否有人能看到我犯了任何明顯的錯誤。配置虛擬主機運行第二個網站,發出帶有<虛擬主機*:8080>,錯誤與`Listen`

目前無論網站設置爲<VirtualHost *:80>作品。我從this answer瞭解到,我應該指定第二個網站<VirtualHost *:8080>。然而,當我嘗試使用Listen我得到下面的錯誤,當我嘗試重新加載阿帕奇

工作的apache2.service失敗。有關詳細信息,請參閱'systemctl status 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

謝謝格雷厄姆。我已經在settings.py文件路徑,SITE_ID等文件中更新了一切(我認爲)。感謝您的提示,並向我展示瞭如何使用WSGIDaemonProcesses正確地完成它,我的計劃是讓它在沒有這些的情況下正常工作(根據您以前的答案我參考了),然後嘗試解決這些問題。再次感謝 – Deepend

+1

我正在考慮的重要之一是SESSION_COOKIE_PATH。 https://docs.djangoproject.com/en/1.10/ref/settings/#session-cookie-path –

+0

謝謝,我現在就補充說。我根本就不知道這件事。 – Deepend