Python Django应用程序无法写入日志处理程序;拒绝许可

Python Django应用程序无法写入日志处理程序;拒绝许可,python,django,apache,permissions,Python,Django,Apache,Permissions,我在Django 1.6.11、Apache 2.4、mod_wsgi中遇到了问题,其中日志处理程序没有写入日志文件的权限。我意识到有很多类似的问题,其中大多数都是通过正确设置文件权限来解决的。我相信在这种情况下,权限设置是正确的,但如果被证明是错误的,我会很高兴 从Apache日志+ps,您可以看到Apache用户是Apache: [Fri Oct 16 12:47:25.360845 2015] [:error] [pid 33075] [client XXX.XXX.XXX.XXX:643

我在Django 1.6.11、Apache 2.4、mod_wsgi中遇到了问题,其中日志处理程序没有写入日志文件的权限。我意识到有很多类似的问题,其中大多数都是通过正确设置文件权限来解决的。我相信在这种情况下,权限设置是正确的,但如果被证明是错误的,我会很高兴

从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/

[user@xxx.xxx.xxx.xxx 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
拥有目标文件并具有读/写权限:

[user@xxx.xxx.xxx.xxx 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
[user@xxx.xxx.xxx.xxx 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'
    },
我可以将处理程序中的文件更改为指向其他位置,但无论我将其指向何处以及如何更改目标文件/目录的权限,我都会收到
权限被拒绝
错误。我记得有时您也必须更改父目录的权限,但即使我将其设置为
777
并归
apache
所有,也会出现相同的错误


我是在某个地方错过了一个愚蠢的步骤,还是有一个打字错误(这将得益于一些新的眼睛)?是否有其他可能导致此问题的原因,这些原因正在被掩盖?我以前在其他应用程序中也这样做过,通常可以通过文件系统权限来清除它…

好的,这是一种随机的解决方案,但事实证明我们的it部门正在使用SELinux来管理内核级权限…这忽略了我所做的任何事情。解决方案--使用它来更新SELinux权限