我有Django的1.6.11,阿帕奇2.4,mod_wsgi的,那裏的日誌處理程序沒有權限寫入日誌文件有問題。我意識到有很多類似的問題,其中大部分都是通過正確設置文件權限來解決的。我相信的權限設置是否正確在這種情況下,但會很樂意被證明是錯誤的...Django應用程序無法寫入日誌處理程序;權限被拒絕
從Apache日誌+ ps
,你可以看到Apache用戶是apache
:
[Fri Oct 16 12:47:25.360845 2015] [:error] [pid 33075] [client XXX.XXX.XXX.XXX:64316] ValueError: Unable to configure handler 'custom': [Errno 13] Permission denied: '/var/www/producer/logs/producer2.log', referer: https://example.com/
[[email protected] producer] $ ps auxw | grep 33075
apache 33075 0.8 0.3 445296 27668 ? Sl 12:47 0:00 /usr/sbin/httpd -DFOREGROUND
user 33230 0.0 0.0 112640 964 pts/2 R+ 12:47 0:00 grep --color=auto 33075
但我的文件權限表明apache
擁有目標文件,並具有讀/寫權限:
[[email protected] producer] $ ls -al logs
total 4
drwxrwxr-x. 2 apache apache 69 Oct 16 12:45 .
drwxr-xr-x. 20 root root 4096 Oct 13 16:50 ..
-rw-r--r--. 1 apache apache 0 Oct 16 12:45 producer2.log
-rw-rw-r--. 1 apache apache 0 Oct 16 12:41 producer.log
-rw-rw-r--. 1 apache apache 0 Oct 13 16:50 test_producer.log
[[email protected] producer] $ pwd
/var/www/producer
更改權限777
對日誌文件沒有幫助。
我的處理程序被配置爲這樣:
'handlers': {
'custom': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/www/producer/logs/producer2.log',
'mode': 'a',
'maxBytes': 10000000,
'backupCount': 5,
'formatter': 'verbose'
},
我可以改變文件中處理程序指向其它地方,但無論在哪裏,我點它,我如何更改目標文件/目錄的權限,我收到了Permission denied
錯誤。我記得有時你必須更改父目錄的權限太多,但即使我設置到777
和歸apache
,我得到了同樣的錯誤。
我失去了一個愚蠢的一步的地方,或者有一個錯字(這從一些新鮮的眼睛受益)?這個問題是否有其他可能的原因被掩蓋?我與其他應用程序這樣做之前,通常可以使用文件系統權限清除掉...