1

我正在尝试增加我正在从事的 php 项目的管理功能。截至目前,该项目会将其所有错误记录到系统日志中。我试图让管理页面能够读取这些错误的系统日志。在终端中我可以输入:

cat /var/log/syslog | grep projectName

但是,如果我尝试使用以下命令运行此命令:

$output=shell_exec('cat /var/log/syslog | grep projectName');

或与:

$output=`cat /var/log/syslog | grep projectName`;

$output 总是显示为空。有没有办法我可以做到这一点?这甚至是最好的方法(IE php 是否有读取系统日志的本机方法)?

编辑:似乎问题是权限问题。我可以授予 www-data 访问系统日志的权限,但出于某种原因,这对我来说似乎不是一个好主意。没有本地方式来读取日志吗?

4

3 回答 3

3

我最终创建了一个完全独立的日志文件。这解决了所有的权限问题

于 2011-03-01T00:34:44.470 回答
1

你不能在 php 中打开 /var/log/syslog 自己而不是执行 shell 命令吗?

于 2010-11-06T20:58:21.470 回答
-2

听说过 sudo 吗?如果您关心安全性,它可能是您的最佳选择。但我认为走 sudo 路线太复杂了,只是给 web 用户一个读取权限,而不是一个写入读取权限。为了使它成为一个安全音乐会,必须有一种方法让其他人编写一个读取 syslog 文件的 php 脚本。如果您是唯一可以将 php 脚本上传到您的服务器的人,那么您根本不必担心这一点。对于共享主机,这是一个问题,因为现在任何人都可以读取服务器的系统日志。

于 2010-11-06T21:15:19.760 回答