[php]php 計算 session 數量時,沒有權限查看資料夾

參考網址:軒.net

一開始使用 shell 指令想直接抓出量

ls /var/lib/php/sessions/sess_*|wc -l

用 root 運作良好,but 變成 php

$session_count=\exec('ls /var/lib/php/sessions/sess_*|wc -l');

馬上因為權限問題掰掰。

查了一堆資料,session 本來就設定不給 www-data 使用

我也不想隨便改資料夾權限

就用其他方式解

寫一隻 session_count.sh 放在/var下

#!/bin/bash
ls /var/lib/php5/sess_*|wc -l

記得給執行權限

chmod u+x /var/session_count.sh

安裝 sudo

apt-get install sudo

編輯 sudoers

visudo

加上此行

www-data ALL = (root) NOPASSWD: /var/session_count.sh

之後在 php 內招換

$online_count = \exec("sudo /var/session_count.sh 2>&1");
if (!preg_match('/^\d+$/', $online_count)) {
	$online_count = -1;
}

就得到 session 數量啦!

本篇發表於 程式設計。將永久鏈結加入書籤。