2016-07-27 82 views
8

我有以下工作Django的配置:的Apache2和上下文路徑AngularJS

WSGIScriptAlias//MyDjangoProjectFolder/MyDjangoProject/wsgi.py 
WSGIPythonPath /MyDjangoProjectFolder 

<Directory /MyDjangoProjectFolder/MyDjangoProject> 
    <Files wsgi.py> 
     Order deny,allow 
     Require all granted 
    </Files> 
</Directory> 

Alias /base_context_path/static/ /MyDjangoProjectFolder/static/ 

<Directory /MyDjangoProjectFolder/static> 
    Require all granted 
</Directory> 

的Django上<ip>/base_context_path/rest響應(由前端調用的REST API)和<ip>/base_context_path/admin(用於管理,它使用base_context_path /靜態)。 因此,Django需要的所有東西都在<ip>/base_context_path/*

現在我需要在這個相同的Apache2上部署一個Angular開發的網站,所以我想了解如何使它工作。我有這個網站的域名(mydomainname.org),但不是專用於django應用程序的域名。當訪問我的域名時,我希望我的網站出現。

這是我爲我的網站嘗試:

<VirtualHost *:80> 
    ServerName mydomainname.org 
    DocumentRoot /MyWebSiteFolder 
    DirectoryIndex index.html 
<Directory "/MyWebSiteFolder"> 
# redirect rules for managing AngularJS 
    </Directory> 
</VirtualHost> 

它不工作(403)。

對於我的Django應用程序,這是我創建的虛擬主機,它不工作,以及(403):

<VirtualHost *:80> 
ServerName mydomainname 
Alias /base_context_path/static/ /MyDjangoProjectFolder/static 

WSGIScriptAlias//MyDjangoProjectFolder/MyDjangoProject/wsgi.py 

WSGIDaemonProcess MyDjangoProject python-path=/MyDjangoProjectFolder:/usr/local/lib/python2.7/site-packages 
WSGIProcessGroup MyDjangoProject 


<Directory /MyDjangoProjectFolder/static> 
     Options -Indexes 
    Require all granted 
</Directory> 

所以我有點卡住。

+0

在django虛擬主機配置中,你的ServerName是否是一個錯字?我期望它是您完全合格的域名......(我想你也已經關閉了虛擬主機標籤。) –

回答

0

對於目錄你需要添加如下指令:

Require all granted 

或某些等效的目錄的訪問權限。 Apache可能無權查看該目錄或被配置爲有權訪問該目錄。您還需要確保Apache有權讀取,寫入和執行。

此外,請檢查apache日誌以獲取有關正在發生的錯誤(403)的其他信息。

我也推薦像Aki003一樣使用nginx,因爲它更容易配置和使用uwsgi。