gpt4 book ai didi

python - Apache CustomLog 管道到脚本失败

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

我正在尝试将 CustomLog 添加到我的 apache httpd.conf 文件中,该文件将日志格式通过管道传输到脚本中。 test.py 脚本现在非常简单,因为我只是想让它工作。当我从命令行运行脚本时,它完全按预期工作。当 apache 调用脚本时,它以 root 身份调用它。我已经在该脚本上将用户/组设置为 root,作为预防措施,我在脚本上执行了 chmod 777。问题是,一旦我重新启动 httpd,error_log 文件就会开始填满此错误。我什至试图将脚本文件设为空文件,但我仍然收到此错误。作为旁注,我的配置文件中确实有另一个 CustomLog 管道,它可以拆分和旋转我的日志,并且工作得很好。

apache/logs/error_log 输出

AH00106: piped log program '/hwnet/dtg_devel/web/boarddev/applications/test.py' failed unexpectedly

httpd.conf

LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vcombined
CustomLog "|/hwnet/dtg_devel/web/boarddev/applications/test.py" vcombined

测试.py

#!/usr/bin/python
with open("/hwnet/dtg_devel/web/boarddev/applications/test.log", "a") as output_log:
output_log.write("Hello World\n")

系统配置

python: 2.6.6
apache: 2.4.7

最佳答案

我最终发现问题与我的脚本有关。 apache 的工作方式是将脚本作为后台进程启动,并且该进程应该正在运行,以便 apache 可以将新日志推送到其中。我的脚本是以运行一次然后退出的方式编写的。因此,每次 apache 尝试向其推送新日志记录时,它都不会在后台运行以接收它,从而导致错误。

关于python - Apache CustomLog 管道到脚本失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852195/

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