ubuntu/Debian で apt でインストールされた PHP を使用している場合、Session の使用時に低い確率でこのプロンプトが表示されることがあります。
Copy code コードは次のとおりです。 :
PHP 通知: session_start(): ps_files_cleanup_dir:
opendir(/var/lib/php5) が失敗しました: アクセス許可が拒否されました (13)
in /home/laruence/ www/htdocs /index.php 22 行目
コードをコピーします。 コードは次のとおりです。
//省略
int nrdels = -1 ;
nrand = (int) ((float) PS(gc_divisor) * php_combined_lcg(TSRMLS_C));
if (nrand < PS(gc_probability)) {
PS(mod)->s_gc( &PS(mod_data) , PS(gc_maxlifetime), &nrdels TSRMLS_CC);
}
//省略
コードをコピーします コードは次のとおりです:
drwx-wx-wt root roo
コードをコピーします コードは次のとおりです:
/ / ファイル ハンドラーの場合、s_gc は ps_files_cleanup_dir を間接的に呼び出します:
dir = opendir(dirname);
if (!dir) {
php_error_docref(NULL TSRMLS_CC, E_NOTICE,
"ps_files_cleanup_dir: opendir(% s) が失敗しました: %s (%d)",
dirname, strerror(errno), errno);
return (0);
コードをコピー コードは次のとおりです:
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/
-type f -cmin $(/usr/lib/php5/maxlifetime) -print0
| r -0 r
さらに、s_gc が実行されているかどうかを判断するときに、PS (gc_divisor) と PS (gc_probability) という 2 つの重要な変数があることがわかります。セッションのランタイム構成項目と同じ名前の構成。項目:
コードをコピー コードは次のとおりです:
rand < ;確率 / gc_diviso
つまり、デフォルトでは、gc プロセスはほぼ 100 回に 1 回呼び出すことができるため、この通知が表示される可能性は低いです。