繁体   English   中英

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

[英]PHP upload file inherit permissions error using Windows IIS Server

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

希望这可以帮助别人,我研究并找到了解决方案:

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值以指向该目录。

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


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

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

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

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

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

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

而且你知道,如果两个文件夹在不同的驱动器上,你就不会遇到这个问题,因此不会阅读这篇文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM