我最近换了服务器,现在我的主页不能用了。 它给出了以下文字:
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
这似乎并没有解决问题。 不知道现在该做什么…
查找Perl可执行文件是否可移植
初始化脚本“/ dev / tty:redirect时没有这样的设备或地址”错误
定期更改环境variables
编辑registry中的环境variables
$ DLN_LIBRARY_PATH什么时候有用?
如何在Visual Studio 2010中设置环境variables?
Qmake在创buildVisual Studio项目时不会replace环境variables?
Powershell:循环现有的variables,使某些不可见的
已删除的环境variables仍然有效
如何在ubuntu 12.04中设置Android SDK,NDK和JDKpath
尝试改变你的会议保存路径在你的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 )后终于工作了!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。