我最近换了服务器,现在我的主页不能用了。 它给出了以下文字:
Warning: session_start() [function.session-start]: open(/var/lib/php/session/sess_eqbchncji8kj22f0iqa9g3v7u2, O_RDWR) failed: Permission denied (13) in /var/www/vhosts/alt.alternativedc.com/httpdocs/index.php on line 6 Warning: Unknown: open(/var/lib/php/session/sess_eqbchncji8kj22f0iqa9g3v7u2, 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 (/var/lib/php/session) in Unknown on line 0
我认为这意味着会话文件夹是不可写的,所以我运行以下命令后,我ssh进入服务器:
chmod o+rw /var/lib/php/session
这似乎并没有解决问题。 不知道现在该做什么…
尝试改变你的会议保存路径在你的PHP配置文件,/ tmp是一个很好的位置。
php.ini中
session.save_path = /tmp
http://www.php.net/manual/en/session.configuration.php#ini.session.save-path
在CentOS上也有同样的问题:
chown -R apache:apache /var/lib/php/session
使httpd用户成为会话目录的权限也应该起作用。
tmp
和/var/lib/session
必须是chmod 1777
并解决问题。
您可能递归地更改了父文件夹的权限,最有可能是您自己的用户。
转到您的会话文件夹:
cd ~;cd /var/lib/php/
如果您找到会话文件夹,只需在终端中写入这两个命令:
cd ~;
那么回家吧
sudo chown -R www-data:www-data /var/lib/php/session
或者,如果您的会话文件夹是“会话”而不是“会话”:
cd ~;
那么回家吧
sudo chown -R www-data:www-data /var/lib/php/sessions
这样你的服务器就可以将会话写入你的项目。
我非常确定这种方法。
在Ubuntu 12.04 / var / lib / php5有1733年的权限我改变了php.ini session.save_path到/ tmp正确地存储会话或者你可以通过ini_set('session.save_path',path_where_apache_have_permission_777)在你的代码中设置参数。
我尝试了所有的解决方案,但他们没有工作,因为php.ini被其他配置覆盖。
为了找到我使用这个技巧的罪魁祸首:
grep -lR 'php_value' /etc/
那里是/etc/httpd/conf.d/php.conf
搞砸了。 所以我将其值从php_value session.save_path "/var/lib/php/session"
更改为php_value session.save_path "/tmp"
。
重新启动Apache( service httpd restart
)后终于工作了!