需要什么权限的PHP?
问题描述:
我想查看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或后缀,以避免这个错误?
答
通常,后缀邮件队列是0700模式,所以只有postfix可以直接读/写队列目录。它看起来像你想要做的是获得活动队列中的项目的计数。您可以使用mailq
(或postqueue -p
)命令执行此操作,您应该能够以apache身份运行该命令。它列出了所有队列的所有队列项目,但是像手册页所述,活动队列中的队列在队列ID后面有一个*
。所以你可以尝试替换你的ls -l
命令:
$active = shell_exec('/usr/sbin/postqueue -p | grep '^[A-F0-9]*\*' | wc -l');
你试过'0777'吗?如果即使这样也行不通,那就是你的配置。 – 2013-04-08 05:20:23
apache需要读取该目录的访问权限。 – 2013-04-08 06:44:04
@Cole这是一个不好的做法,为系统文件夹提供777只是为了通过PHP/Web服务器读取一些文件/日志。他们是其他解决方案,如设置可读的替代路径或添加Web用户到组。 – 2013-04-08 06:57:49