如何让我的会话写入apache

Dan*_*ats 12 php apache session-variables

我最近切换了服务器,现在我的主页无法正常工作.它给出了以下文字:

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
Run Code Online (Sandbox Code Playgroud)

我认为这意味着会话文件夹不可写,因此我在ssh-ed进入服务器后运行以下命令:

chmod o+rw /var/lib/php/session
Run Code Online (Sandbox Code Playgroud)

这似乎没有解决问题.不知道现在该怎么办......

Edd*_*die 20

尝试在php配置文件中更改会话保存路径,/ tmp是个好位置.

php.ini中

session.save_path = /tmp
Run Code Online (Sandbox Code Playgroud)

http://www.php.net/manual/en/session.configuration.php#ini.session.save-path

  • "警告:如果将此集保留在世界可读目录中,例如/ tmp(默认值),则服务器上的其他用户可以通过获取该目录中的文件列表来劫持会话." (2认同)

Mar*_*ler 16

在CentOS上遇到同样的问题:

chown -R apache:apache /var/lib/php/session
Run Code Online (Sandbox Code Playgroud)

使httpd用户成为会话目录的功能也是可行的.


dan*_*rui 6

您可能递归地更改了父文件夹的权限,最有可能是您自己的用户.
转到您的会话文件夹:
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

这样,您的服务器就可以将会话写入您的项目.
我很确定这种方法.