Codeigniter在IIS中无法正常工作

3

好的,我收到了一个CodeIgniter应用程序。它在本地主机上运行良好,在我得到的php托管中也运行良好。但我的客户希望它在IIS上运行。我已经通过了web.config的陷阱,但现在遇到以下错误:

捕获到未处理的异常

类型:Exception

消息:Session:配置的保存路径“c:\ windows \ temp”不可写入PHP进程。

文件名: E:\ home \ emconexao.com \ site3 \ system \ libraries \ Session \ drivers \ Session_files_driver.php

行号:124

我知道这是PHP配置问题,但具体在哪里呢?

如果我从我的application/config/autoload.php文件中删除session,它就可以工作...直到我登录网站,然后显然它无法生成会话并崩溃...

有人能帮帮我吗?


你可以将虚拟应用程序池设置为实际用户,该用户具有对windows\temp的权限(不是管理员)。 - Anthony Horne
你的帖子稍微进行一些格式化处理会有很大的帮助,我已经为你编辑好了。此外,你应该避免使用缩写词,比如“obv”。 - Tom Tom
你可以直接更改 c:\windows\temp 的权限,以允许用户拥有完全访问权限。如果你和我一样懒的话。 - Menace
6个回答

6
这是我使用的解决方法:
  • 打开php.ini文件
  • 设置:session.save_path = C:\inetpub\temp\sessions
  • 创建C:\inetpub\temp\sessions文件夹,并将IUSR和NETWORK SERVICE(或应用程序池标识的任何身份)赋予完全权限。
  • 保存php.ini
这是一个很好的参考:http://forums.iis.net/post/1735092.aspx

请注意,php.ini 的一个位置可能是 C:\Program Files (x86)\IIS Express\PHP\v5.3\php.ini,即使存在 C:\Program Files (x86)\IIS Express\PHP\v5.4,该文件仍可能被使用。 - Elijah Lofgren

2

提供 config.php 文件

$config['sess_save_path'] = 'writable absolute path';

1

0
1= create file .user.ini
2= copy this code and edit
[PHP]
open_basedir=""
safe_mode=off
sendmail_from=noreply@secureserver.net
SMTP=relay-hosting.secureserver.net
session.save_path=server drive:\PleskVhosts\your main domain.com\yout sub domain name/tmp;

    enter code here

example

[PHP]
open_basedir=""
safe_mode=off
sendmail_from=noreply@secureserver.net
SMTP=relay-hosting.secureserver.net
session.save_path=G:\PleskVhosts\gfor.com\onlineshope.org\tmp;

0

这对我有用,在 httpdocs 中更改一些地方的 .user.ini,输入 session.save_path = 'C:\your dir',然后在 config.php 中将 session.save_path ='null' 更改为上述目录,并在 php 设置中进行相同的更改,将 session.save_path 设置为上述目录。


-2

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