2015-10-16 87 views
1

我有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,我得到了同樣的錯誤。

我失去了一個愚蠢的一步的地方,或者有一個錯字(這從一些新鮮的眼睛受益)?這個問題是否有其他可能的原因被掩蓋?我與其他應用程序這樣做之前,通常可以使用文件系統權限清除掉...

回答

1

好了,這樣類型的隨機解決方案,但事實證明我們的IT部門正在使用SELinux的管理內核級權限...忽略了我所做的任何事情。解決方案 - 與IT合作更新SELinux權限。

相關問題