2012-02-15 103 views
0

我用Apache2 + mod_wsgi設置了Django。靜態文件由Nginx提供。 Apache是​​通過端口81和nginx的運行在端口80Apache上的Django和Nginx的寫權限

我的設置是這樣的: MEDIA_ROOT =的 'http://本地主機/媒體/' ADMIN_MEDIA_PREFIX =的 'http://本地主機/媒體/'

一切看起來不錯。在https://localhost:81/admin我可以看到Django管理站點及其靜態文件。

我創建了這個模型的新的應用程序: 類宋(models.Model): 歌= models.FileField(upload_to =「歌」)

當我嘗試上傳在管理站點文件我得到以下錯誤。

OSERROR在/管理/播放/曲/添加/

[錯誤13]權限被拒絕: '/ HTTP:'

請求方法:POST 請求URL:http://localhost:81/admin/player/song/add/ Django的版本:1.3。 1種 異常類型:OSERROR 異常值:

如何允許Apache將更改應用於nginx的

回答

1

你已經設置你r MEDIA_ROOT到一個網址。我認爲它應該設置爲物理位置,我認爲ADMIN_MEDIA_PREFIX也是如此。我會嘗試改變

MEDIA_ROOT = '/Projects/my_project/media/' # assuming linux 

ADMIN_MEDIA_PREFIX = PROJECT_URL + '/media/admin' 

您還可以設置權限給媒體的文件夾。我認爲你需要給www-data寫權限。

+0

它工作。謝謝。問題實際上是MEDIA_ROOT(愚蠢的noob錯誤)。我將MEDIA_ROOT更改爲絕對路徑,並且改變了我的stettup。 Nginx現在用作reverseeproxy,以便我的ADMIN_MEDIA_PREFIX只是/ media /而不是localhost/media。這似乎更靈活,更普遍。 – user1210456 2012-02-15 23:28:47

+0

很高興幫助。請勾選答案以表明答案已經解決。 – darren 2012-02-16 07:43:58