gpt4 book ai didi

python - Django 应用程序无法写入日志处理程序;没有权限

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:46 25 4
gpt4 key购买 nike

我在 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 来管理内核级权限......它忽略了我所做的任何事情。解决方案 - 与 IT 部门合作更新 SELinux 权限。

关于python - Django 应用程序无法写入日志处理程序;没有权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33176588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com