PHP忽略upload_tmp_dir?

LS,

我用PHP(FastCGI)使用IIS7。

我将upload_tmp_dir设置为“X:\ Temp”,而不是将其保留为空,但由于某种原因仍然使用“C:\ Windows \ Temp”。

我确实给了以下用户完整的权限:NETWORK SERVICE,(应用程序池用户),IIS_IUSRS。 我做了更改后,我也重新启动了IIS。

我试图使用PHP在正确的临时path内创build一个目录,这确实有效,所以这不是一个安全问题。

亲切的问候,

马提亚斯万斯

查找Fopen包装器部分下的设置。

在我安装PHP的时候,我发现了另外一个upload_tmp_dir ,因为它是在上传文件的时候指定的

我怀疑PHP的新的Windows(.msi)安装的安装过程的一部分尝试有点太聪明,并在安装时从系统环境variables创build这些设置,而不是问你。

简而言之,在您的PHP文件中查找重复的upload_tmp_dir条目并将其删除。

HTH刘易斯

对不起,但我没有正确理解你的问题。

如果PHP要使用TEMP或TMP的系统环境variables,那么它将指向%SystemRoot%\TEMP 。 但是,如果PHP.ini中有任何可以configuration的variables并指向临时文件的自定义文件夹,则授予权限应该可行。 看看这个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并检查应用程序redirect到%SystemRoot%\TEMP文件夹的哪个阶段。 希望这应该是一个简单的configuration问题。

由于APPLICATION POOLS上的一个设置,PHP忽略了upload_tmp_dir

这不是php-cgi.exephp.ini或权限问题。

转到遇到问题的网站的应用程序池:

  1. 右键点击
  2. selectAdvanced settings
  3. 滚动到LOAD USER PROFILE并将其设置为FALSE