LS,
我将 IIS7 与 PHP (FastCGI) 一起使用。
我将upload_tmp_dir 设置为“X:\Temp”而不是将其留空,但由于某种原因它仍在使用“C:\Windows\Temp”。
我确实给了以下用户完整的权限:NETWORK SERVICE,(应用程序池用户),IIS_IUSRS。进行更改后,我还重新启动了 IIS。
我尝试使用 PHP 在正确的临时路径中创建一个目录,并且确实有效,因此这不是安全问题。
亲切的问候,
马蒂亚斯·万斯
LS,
我将 IIS7 与 PHP (FastCGI) 一起使用。
我将upload_tmp_dir 设置为“X:\Temp”而不是将其留空,但由于某种原因它仍在使用“C:\Windows\Temp”。
我确实给了以下用户完整的权限:NETWORK SERVICE,(应用程序池用户),IIS_IUSRS。进行更改后,我还重新启动了 IIS。
我尝试使用 PHP 在正确的临时路径中创建一个目录,并且确实有效,因此这不是安全问题。
亲切的问候,
马蒂亚斯·万斯
在Fopen wrappers部分下查找设置。
在我安装 PHP 时,我发现另一个upload_tmp_dir潜伏在那里,它优先,因为它是在文件上传下的设置之后指定的
我怀疑 PHP 的新 Windows (.msi) 安装的安装过程的一部分尝试有点过于聪明,并在安装时从系统环境变量创建这些设置,而不是询问您。
简而言之,在您的 PHP 文件中查找重复的 upload_tmp_dir 条目并消除它们。
HTH 刘易斯
对不起,但我没有正确理解你的问题。
如果 PHP 打算为 TEMP 或 TMP 使用系统环境变量,那么它将指向
%SystemRoot%\TEMP
. 但是,如果 PHP.ini 中有任何变量可以配置并指向临时文件的自定义文件夹,那么授予权限应该可以工作。看看这个http://phpsec.org/projects/phpsecinfo/tests/upload_tmp_dir.html和 http://www.php.net/manual/en/features.file-upload.php如果 PHP 仍在使用
%SystemRoot%\TEMP
,则使用 Process Monitor 并检查应用程序在哪个阶段重定向到该%SystemRoot%\TEMP
文件夹。希望这应该是一个简单的配置问题。upload_tmp_dir
由于 APPLICATION POOLS 上的一项设置,PHP 忽略了这一点。这不是
php-cgi.exe
,php.ini
, 或权限问题。转到遇到问题的网站的应用程序池:
Advanced settings
LOAD USER PROFILE
并将其设置为FALSE
。