国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 深入理解PHP原理之Session Gc的一個小概率Notice

深入理解PHP原理之Session Gc的一個小概率Notice

2019-11-20 14:47PHP教程網 PHP教程

PHP Notice: session_start(): ps_files_cleanup_dir

如果在ubuntu/Debian下, 采用apt安裝的PHP, 那么在使用Session的時候, 就可能會有小概率遇到這個提示. 

復制代碼代碼如下:


PHP Notice: session_start(): ps_files_cleanup_dir: 
opendir(/var/lib/php5) failed: Permission denied (13) 
in /home/laruence/www/htdocs/index.php on line 22 


這是因為, 在PHP中, 如果使用file_handler作為Session的save handler, 那么就有概率在每次session_start的時候運行Session的Gc過程. 

復制代碼代碼如下:


//有省略 
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); 

//有省略 


這個警告的原因是因為在apt的PHP中, session的默認目錄/var/lib/php5的權限是733 with sticky bit, 也就是 

復制代碼代碼如下:


drwx-wx-wt root roo 


而一般PHP的worker都運行在非root身份下, 所以是沒有權限來打開這個文件夾的(但是因為可以write, 所以不影響正常的Session文件讀取). 于是在s_gc中的如下代碼, 就會觸發開頭所說的Notice: 

復制代碼代碼如下:


//對于file handler來說, 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) failed: %s (%d)", 
dirname, strerror(errno), errno); 
return (0); 


當然, 在ubuntu/Debian下, 還是有gc回收的, 只不過是外部的cron進程來完成的, 默認的在/etc/cron.d/php5:, 

復制代碼代碼如下:


09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] 
&& [ -d /var/lib/php5 ] && find /var/lib/php5/ 
-type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 
| xargs -n 200 -r -0 r 


另外, 可以看到, 在判別s_gc是否運行的時候, 有倆個關鍵變量: PS(gc_divisor)和PS(gc_probability), 這倆個變量分別對應著session的運行時配置項的倆個同名配置項: 
session.gc_probability和session.gc_divisor, 他們分別默認為1和100. 
而php_combined_lcg是一個隨機數發生器, 生成0到1范圍的隨機數, 所以上面的判別相當于: 

復制代碼代碼如下:


rand < probability / gc_diviso 


也就是說, 默認情況下, 差不多是100次能調用一次gc過程. 所以也就是小概率的可以看到這個Notice. 
要關閉這個Notice, 只需要設置: 
session.gc_probability = 0, 讓s_gc完全沒有運行的可能即可. 
當然, 你也可以改變這個文件夾的權限… 
最后, 感謝CFC4N提供這個問題. 
作者: Laruence( ) 
本文地址: http://www.laruence.com/2011/03/29/1949.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av瑟瑟| 亚洲经典一区 | 久久人爽| 日韩欧美在线观看一区二区 | 国产高清视频在线观看 | 51ⅴ精品国产91久久久久久 | 色婷婷亚洲一区二区三区 | 成人亚洲视频 | 爱爱网址| 亚洲xxxxx| 一区二区三区在线不卡 | 欧美国产精品一区二区三区 | 亚洲激情视频 | 免费成人在线观看视频 | 欧美一级片 | 亚洲精品一区二区三区蜜桃下载 | 国产福利一区二区三区四区 | 欧美日韩一区二区三区在线观看 | 久久精品91 | 精品日韩在线 | 成人在线一区二区三区 | 最新国产视频 | 精品欧美一区二区三区久久久 | 国产精品去看片 | 性色好看的网站 | 欧美 日韩 国产 一区 | 亚洲在线播放 | 亚洲九九 | 欧美一区二区三区男人的天堂 | 亚洲视频免费在线观看 | 一级在线 | 日韩成人在线播放 | 国外精品视频在线观看 | 亚洲视频免费 | 日本天堂在线 | 色九九 | 国产精品天天干 | 一区二区三区在线观看视频 | 95香蕉视频| 色婷婷中文字幕 | 爱爱视频网址 |