我想通過Apache安裝一個Django網站。爲此,我使用運行CentOS7的虛擬機並使用Apache 2.4.6。Django應用程序沒有在Apache上與wsgi_mod響應
我用Python(3.6.2)創建了一個虛擬環境,安裝了Django(1.10.05)和mod-wsgi(4.5.18)。啓動新的Django項目,遷移的數據庫,在地址0.0.0.0:8003上啓動開發人員服務器,並從VM外部啓動,我可以毫無問題地連接到<VMs IP>:8003
。但是,如果沒有開發人員服務器,嘗試在Apache上進行中繼,則不起作用。我的瀏覽器只是說,連接到網站是不可能的,事實上,Apache的訪問日誌不包含任何連接嘗試的痕跡。同樣的Apache主機也是用Perl編寫的另一個應用程序,它可以通過專用端口正常工作。我的settings.py的
位,可能是信息對您
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]', '<VMs address>']
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
而且我的httpd.conf看起來是這樣的:
<VirtualHost *:8003>
# using port 8003, because 80 is used by another app. Both ports are open on firewall
Alias /static /var/www/zdm_ebok/static
<Directory /var/www/zdm_ebok/static>
Require all granted
</Directory>
<Directory /var/www/zdm_ebok/zdm_ebok>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess zdm_ebok python-path=/var/www/zdm_ebok:/var/www/zdm_ebok/venv/lib/python3.6/site-packages
WSGIProcessGroup zdm_ebok
WSGIScriptAlias//var/www/zdm_ebok/zdm_ebok/wsgi.py
</VirtualHost>
我已授予訪問權限(664)訪問權和所有權給Apache使用的用戶,所以這可能不是它。
你有什麼其他想法可以做我做錯了嗎?
編輯
我交換端口與其他應用程序,這樣的Django現在工作的80端口,我得到503服務不可用錯誤。然後,我設法在httpd.conf中設置WSGISocketPrefix /var/run/wsgi
並在WSGIDaemonProcess中添加user=#1000
(1000是我的主用戶的ID)。但是,當我將它帶回到8003端口(以便我的其他應用程序可以在80上工作)時,它不會再響應。
SOLUTION
說不上來我是否應該刪除此或沒有,但也許某人那裏誰是在同樣的Apache作爲文盲我,這將是有益的。我忘記做的一件事是在httpd.conf中添加「Listen 8003」,以便Apache開始監聽新端口。
是你能找到解決這個問題的? –