iis中,php如何显示运行错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iis中,php如何显示运行错误相关的知识,希望对你有一定的参考价值。

我是用了win2003系统,现在运行php代码,如果有错,页面就是什么内容都不显示,如何设置可以显示运行错误,比如提示哪一行代码有什么错误!

参考技术A php程序目录下,有个php.ini,用记事本打开,里面有说明和设置项,包括是否打开显示错误的功能,以及显示的等级。

在 IIS 7 上添加对 PHP 的写入权限

【中文标题】在 IIS 7 上添加对 PHP 的写入权限【英文标题】:Add writing permission to PHP on IIS 7 【发布时间】:2011-08-18 17:32:56 【问题描述】:

我需要一个 PHP 脚本才能在目录中拥有写入权限。 PHP 5.3 在 IIS 7 下作为 FastCGI 运行,Windows Server 2008 作为 OP。在我的 php 错误日志中,当脚本尝试写入文件时,我得到“权限被拒绝”。

我该如何解决这个问题?我试图将所有权利授予 IIS_IUSR 和 IUSR_myservername(右键单击我的文件夹),但没有成功。

任何帮助将不胜感激,

问候,

朱利安

【问题讨论】:

【参考方案1】:

您需要授予 PHP 写入权限,而不是 IIS。这意味着运行 PHP 的用户帐户需要权限(可能与运行 IIS 的用户帐户相同)。

【讨论】:

如何判断 PHP 运行在哪个帐户上? php-cgi.exe 将从 w3wp.exe 生成并具有相同的上下文。就像上面所说的 tomfumb 所说,授予 Windows 安全上下文 'IIS APPPOOL\MyAppName' 对相关文件夹的写入权限。 要确切知道您需要向哪个用户授予写入权限,请查看我的答案。【参考方案2】:

我有相同的设置,我必须授予写权限:

IUSR IIS AppPool\<<AppPoolName>>

【讨论】:

非常感谢,当我给IUSR写权限时它就可以工作了! 你还需要iisreset 才能重新加载php。 @svandragt 因为如果您的应用程序使用“应用程序池标识”运行,这就是它使用的帐户 在我的情况下,不需要做 iisreset,只给 IUSR 写权限就可以了。 > 可能是 DefaultAppPool【参考方案3】:

其实稍微复杂一点。

首先要做的是在相关网站上创建一个简单的 PHP 文件。 (在相关网站上创建文件很重要,因为每个网站可以有不同的设置。)该文件的内容应该是:

<?php var_dump(ini_get('fastcgi.impersonate')); ?>

使用浏览器导航到该文件。

** 案例 1 **

如果您的浏览器显示:

string(1) "1"

然后,您需要执行以下命令(您需要将“默认网站”替换为您在 IIS 中为您的网站指定的名称):

%windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^
/section:anonymousAuthentication

您将收到如下所示的答案:

<system.webServer>
  <security>
    <authentication>
      <anonymousAuthentication enabled="true" userName="IUSR" />
    </authentication>
   </security>
</system.webServer>

您要查找的信息是anonymousAutthentification 标记的username 属性的值。

如果此值不为空,则其内容是您需要授予写入权限的用户的名称。 如果此值为空或只是缺少该属性,您需要向IIS AppPool\AppPoolName 授予写入权限(将“AppPoolName”替换为您网站的应用程序池的名称)。

** 案例 2 **

如果您的浏览器显示:

string(1) "0"

您需要向IIS AppPool\AppPoolName 授予写入权限(将“AppPoolName”替换为您网站的应用程序池的名称)。

【讨论】:

非常感谢您提供的详细信息。当答案只是“x”而不说如何找出答案或为什么是“x”时,我总是有点坐立不安 在哪里执行命令?在 cmd 中还是在某些特定的 shell 中? @tristan Charbonnier 很抱歉碰到一个旧线程,但您知道如何为 AD 和网络驱动器设置应用程序池权限吗? 这需要更多的支持! ...经过 4 天与“缺少临时文件夹”相关的搜索。 WordPress中的问题,我终于明白它的IIS AppPool需要PHP upload_tmp_dir文件夹而不是WP_TEMP_DIR的权限。谢谢老兄!

以上是关于iis中,php如何显示运行错误的主要内容,如果未能解决你的问题,请参考以下文章

IIS服务器环境下某路径下所有PHP接口无法运行报500.19错误

IIS+php服务器无法上传图片(500 错误)

IIS7 + PHP5.3.16 + Plesk 如何获取 500 错误的详细信息?

iis的500错误?

我自己装了IIS,但是不能访问,只能显示http500错误,请问如何修复这个问题呢?

遇到IIS7配置PHP出现403和404错误的解决办法