【发布时间】:2013-11-20 22:58:54
【问题描述】:
我正在尝试通过 fastcgi 服务器在我的 IIS/PHP 上设置 session.save_path。因此,我在我的 php 文件夹中创建了一个名为 tmp 的新文件夹,赋予 IUSR 和 IIS_IUSRS 对该文件夹的完全权限,并将 php.ini 中的 session.save_path 变量设置为“\tmp”。
加载我的网页时出现错误:
Warning: session_start(): open(tmp\sess_gp13t5fg969iddfq1lrt3e88o1, O_RDWR) failed: No such file or directory (2)
奇怪的是我知道它可以看到该文件夹,因为我查看了我新创建的 tmp 文件夹,它实际上在抛出错误告诉我它不存在之前创建了 sess_gp13t5fg969iddfq1lrt3e88o1 文件。那么它如何创建文件然后看不到它呢?我可能做错了什么?
更新:如果我将 session.save_path 设置为绝对路径,它可以工作。当我给它一个“\tmp”的相对路径时,它不再起作用。我看到的每个示例都使用 save_path 的相对路径,我个人需要使用相对路径。为什么相对路径会导致此问题,我该如何解决?
【问题讨论】:
-
您解决了哪些问题?它说没有这样的文件或目录,那么你怎么知道是哪一个导致了错误?您是否尝试过在该目录中打开另一个文件?会不会是相对路径找不到文件夹?
-
@GaryHayes 果然,如果我将文件夹的完整路径放在 session.save_path 下,它就可以工作。但是,我确实需要在这里使用相对路径,因为我们在多个开发工作站中使用相同的 php.ini 文件,而 PHP 可能安装在其他地方。为什么在 session.save_path 下使用相对路径会导致此问题,我该如何解决?
-
什么版本的 IIS/Windows?
标签: php session iis permissions fastcgi