2013-04-08 95 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'); 
相關問題