2017-09-21 84 views
0

我想通過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開始監聽新端口。

+0

是你能找到解決這個問題的? –

回答

0

我試過這個在我的服務器上,它工作正常。試試這個,

<VirtualHost *:80> 

    ServerName localhost.localdomain 
    ServerAlias ipaddress 

    DocumentRoot /var/www/projectname 
    WSGIScriptAlias//var/www/projectname/projectname/wsgi.py 

    Alias /static/ "/var/www/projectname/projectname/static/" 
    <Directory "/var/www/projectname/projectname/static"> 
     Require all granted 
    </Directory> 

    ErrorLog /var/www/logs/error.log 
    CustomLog /var/www/logs/access.log combined 

</VirtualHost> 

和編輯/etc/httpd/conf/httpd.conf中

WSGIPythonPath /var/www/projectname 
+0

不幸的不是。我嘗試過(取而代之的是我自己的路徑)以及它的一些變化。結果總是相同的:Apache正常啓動,但不響應請求。 –