參考網址:軒.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 數量啦!