本文介绍了PHP会话文件权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有文件index.php:
I have file index.php:
<?php
session_start();
$_SESSION['favcolor'] = 'green';
我得到结果:
Warning: session_start() [function.session-start]: open(/tmp/sess_a8njkmbcg3lbkvl7f2hhjchjm5, O_RDWR) failed: Permission denied (13) in /var/www/test.local/index.php on line 9
Warning: Unknown: open(/tmp/sess_a8njkmbcg3lbkvl7f2hhjchjm5, O_RDWR) failed: Permission denied (13) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
php.ini
root@savpc:/etc/php5/apache2# cat php.ini | grep '^session'
session.save_handler = files
session.save_path = "/tmp"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
在文件系统中,我得到的文件具有奇怪的权限:
in file system i get files with strange permissions:
root@savpc:/tmp# ls -al | grep 'sess'
---------- 1 www-data www-data 2106 2013-11-11 19:21 sess_7cvcojv36n6se6mkrqmui7tu707u9avb
---------- 1 www-data www-data 21 2013-11-11 19:23 sess_a8njkmbcg3lbkvl7f2hhjchjm5
---------- 1 www-data www-data 1040 2013-11-11 19:21 sess_gllhhosb9dur0jdvf13lqe5klmebj1k9
---------- 1 www-data www-data 2106 2013-11-11 19:21 sess_m8c788u0jssqg1gqjeonafk0er5jnbsk
- Ubuntu 11.10
- Apache版本:Apache/2.2.20(Ubuntu)
- PHP版本5.3.6-13ubuntu3.10
-
使用特定的文件夹进行会话,例如/tmp/php_sessions.这既是保管家,又是出于安全原因.
Use a specific folder for sessions, such as /tmp/php_sessions. This is both good house keeping and for security reasons.
可能是什么问题?
推荐答案
尝试在session.save_path中指定文件模式.
Try specifying the file mode in session.save_path.
session.save_path = "0;0600;/tmp/php_sessions"
请参见PHP手册中的会话配置以获得更多信息.
See session configuration in the PHP manual for more information on this.
这篇关于PHP会话文件权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!