【问题标题】:PHP upload file inherit permissions error using Windows IIS ServerPHP上传文件继承权限错误使用Windows IIS Server
【发布时间】:2012-09-28 23:13:02
【问题描述】:

我的同事一直在通过托管在 Windows Server 2008 IIS 7 上的 PHP 上传文件,但她在下载文件时遇到了问题,即使上传文件夹的适当权限已授予 IIS_USRS 组。原来上传的文件不是!

【问题讨论】:

标签: php windows iis permissions download


【解决方案1】:

希望这可能对其他人有所帮助,我在这里研究并找到了解决方案:

http://www.howyoudo.info/index.php/how-to-fix-windows-server-upload-file-inherit-permissions-error/

简而言之,更改“upload_tmp_dir”(php.ini 文件中的路径)文件夹的权限以匹配您的 Web 应用文件夹权限。

如果您不能或不想更改临时文件夹(默认为系统临时文件夹)的权限。然后创建一个新的临时文件夹并为其设置所需的权限。然后更新 PHP INI upload_tmp_dir 值以指向该目录。

【讨论】:

【解决方案2】:

添加https://web.archive.org/web/20171121192635/http://www.howyoudo.info/index.php/how-to-fix-windows-server-upload-file-inherit-permissions-error/ 的内容,以防将来此链接不可用(感谢蒂芙尼的评论)。


如何使用 Windows IIS 服务器修复 PHP 上传文件继承权限错误

如果您像我一样使用 Windows IIS,您可能会花费数小时试图弄清楚为什么您上传的文件不会继承正确显示所需的权限。幸运的是,答案非常简单,而且大多数人都不会想到。

该问题仅在您使用 PHP 上传文件时发生。当您上传文件时,PHP 会将文件发送到硬盘驱动器上的临时目录(对我来说是 C:\Windows\Temp),然后将其复制到预期的目录。一旦文件进入临时目录,它就会被分配该目录的权限。问题是当 Windows 复制该文件时,它会保留临时目录的权限,并且不会继承您的 Web 目录的权限。

解决此问题的最简单方法是将您预期的 Web 目录权限添加到临时目录。无需删除临时目录中已有的权限,只需将 web 目录的权限添加到它们即可。换句话说,请按照以下步骤操作

  1. 要更改临时上传目录的权限,请在 php.ini 文件中找到“upload_tmp_dir”。
  2. 将其设置为您选择的目录(当然在您的 Web 文件夹之外)或保持默认设置(对我来说是 C:\Windows\Temp)。
  3. 浏览到此文件夹并将您的网络文件夹的权限添加到其中。

就是这样!如您所见,它非常简单,只是 PHP 人员忘记告诉我们的一个小技巧。

您知道,如果这两个文件夹位于不同的驱动器上,您就不会遇到这个问题,因此也不会阅读此内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2017-01-19
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2014-09-21
    相关资源
    最近更新 更多