通过 cron 与 apache 创建的文件的文件所有者不同
我有一个网络应用程序,它有一个共享的 config.php 文件。在此文件中,我包含一个收集错误消息的函数(使用 set_error_handler),然后在脚本执行结束时将错误保存到集中日志文件中(使用 register_shutdown_function)代码>)。
日志文件每天都会创建,格式为 Ymd.log
。 Cron 脚本作为应用程序的一部分每 5 分钟运行一次,因此通常是每天第一个错误的原因,因此错误文件是在 cron 用户(即帐户超级用户)下创建的。
当我们的员工进来工作并使用该应用程序时,该脚本在 apache 用户 (99) 下运行。错误记录器无法写入错误文件,因为它由超级用户拥有。
一种可能的解决方案是让 cron 脚本 chown
将日志文件设置为 99,以便 apache 用户可以访问它。 uid 99 是否是 apache 托管的公认约定,或者如果我硬编码 99,是否会导致未来的可移植性问题?
有没有其他方法(不诉诸 exec
/sudo
)来使我的日志可访问?
更新:我没有服务器的 shell 访问权限。
谢谢,亚当
I have a web application which has a shared config.php file. In this file, I include a function which gathers error messages (using set_error_handler
) and then, at the end of the script execution, saves the errors to a centralised log file (using register_shutdown_function
).
Log files are created daily, in the format Y-m-d.log
. Cron scripts run every 5 minutes as part of the application, so are usually the cause of the first errors each day and so the error file is created under the cron user, which is the account superuser.
When our staff come in to work and use the application, the script runs under the apache user (99). The error logger can't write to the error file, as it is owned by superuser.
One possible solution is to have the cron script chown
the log file to 99, so that it can be accessed by the apache user. Is uid 99 an accepted convention for apache hosting, or will I be causing future portability issues if I hard-code 99 in?
Are there any other ways (without resorting to exec
/sudo
) to make my log accessible?
Update: I don't have shell access to the server.
Thanks, Adam
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不需要id。用户名就足够了,如果您不想硬编码任何内容,我建议您:
you don't need the id. The username is enough and if you don't want to hardcode nothing, i suggest that you: