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.exe , php.ini或权限问题。
转到遇到问题的网站的应用程序池:
Advanced settings LOAD USER PROFILE并将其设置为FALSE 。