警告:session_start() 失败:没有这个文件或目录。

13
我正在尝试安装berta(v 0.6.3b),但是我遇到了以下错误:
警告:session_start()[function.session-start]:在/hermes/bosweb/web010/b100/ipg.ellieniemeyercom/engine/_classes/class.bertasecurity.php的第75行,打开/var/php_sessions/sess_a0d6b8422181739d10066fb60cebfe5d时失败:没有这样的文件或目录。
错误似乎发生在的第75行(查看源代码
出了什么问题,我该如何解决?
5个回答

17

谢谢您,您能提供更详细的代码,说明如何将其设置为示例目录吗? - Mohammad
@Mohammad:你可以访问我提供的链接,查看全面的文档和不同人提供的更多有用评论 :) - Sarfraz
坏答案。首先,在SO上你应该给出答案,而不是答案的链接,因为链接会变。其次,链接的指示只会产生错误,session_save_path(): Session save path cannot be changed when a session is active PHP Warning: ini_set(): Session ini settings cannot be changed when a session is active。甚至修改php.ini并重新启动apache也无法解决问题。 - undefined

3
我认为包含会话数据的文件夹无法被PHP进程访问。
如果您没有更改过php.ini,那么默认的session.save_handler应该是files(这意味着会话数据将存储在文件系统上的一个文件夹中)。session.save_path的值包含了该文件夹,您应该检查它是否存在以及对于您的php进程是否具有权限。

类似 echo session.save_path; 这样的语句可以实现吗? - Mohammad
这些是ini值(PHP进程的配置值),您可以使用ini_set()修改它们。请查看官方说明(以及我在回答中提供的链接):http://de.php.net/manual/en/configuration.changes.modes.php - soulmerge
我刚刚检查了一下,session_save_path() 的值是 /var/php_sessions/ - Mohammad
所以我想我在那个文件夹中没有写入权限。 - Mohammad

3
如果您更改正在使用的会话路径,则还需要考虑通过更改php.ini文件中的session.save_path变量来修复此问题。这样做,您不仅可以在脚本中进行修改,还可以在配置文件中进行修改。请注意保留HTML标签。

1
会话保存在服务器的硬盘上。很可能您的会话保存路径不存在。尝试将其设置为存在的目录或您具有读/写权限的目录。

0

我们在将网站从cPanel服务器迁移到另一个主机时遇到了这个问题。

session.save_pathphp.ini.user.ini中被配置在我们的public_html/文件夹内,可能覆盖了主机想要使用的默认路径。

我们决定这些文件根本不需要,只是旧服务器的残留物,将它们删除/重命名并移开,这解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接