2013-04-08 137 views
0

我想查看postfix的活动队列。我的PHP脚本我用需要什么权限的PHP?

$active = shell_exec('/bin/ls -1 /var/spool/postfix/active | /usr/bin/wc -l'); 

但在日志中我看到

/bin/ls: cannot open directory /var/spool/postfix/active: Permission denied 

我需要什么样组添加PHP或后缀,以避免这个错误?

+1

你试过'0777'吗?如果即使这样也行不通,那就是你的配置。 – 2013-04-08 05:20:23

+1

apache需要读取该目录的访问权限。 – 2013-04-08 06:44:04

+0

@Cole这是一个不好的做法,为系统文件夹提供777只是为了通过PHP/Web服务器读取一些文件/日志。他们是其他解决方案,如设置可读的替代路径或添加Web用户到组。 – 2013-04-08 06:57:49

回答

1

通常,后缀邮件队列是0700模式,所以只有postfix可以直接读/写队列目录。它看起来像你想要做的是获得活动队列中的项目的计数。您可以使用mailq(或postqueue -p)命令执行此操作,您应该能够以apache身份运行该命令。它列出了所有队列的所有队列项目,但是像手册页所述,活动队列中的队列在队列ID后面有一个*。所以你可以尝试替换你的ls -l命令:

$active = shell_exec('/usr/sbin/postqueue -p | grep '^[A-F0-9]*\*' | wc -l'); 
相关问题