LS,
Я использую IIS7 с PHP (FastCGI).
Я установил для upload_tmp_dir значение «X: \ Temp» вместо того, чтобы оставлять его пустым, но по какой-то причине он все еще использует «C: \ Windows \ Temp».
Я дал полные права следующим пользователям: NETWORK SERVICE, (пользователь пула приложений), IIS_IUSRS. Я также перезапустил IIS после внесения изменений.
Я попытался создать каталог внутри правильного временного пути с помощью PHP, и это сработало, так что это не проблема безопасности.
С уважением,
Маттиас Вэнс
Ищите настройку под Обертки Fopen раздел тоже.
При установке PHP я нашел еще один upload_tmp_dir скрывающийся там, который имеет приоритет, потому что он указан после настройки в Загрузка файлов
Я подозреваю, что часть процесса установки для новых установок PHP для Windows (.msi) пытается быть слишком умным и создавать эти настройки из переменных системной среды во время установки, вместо того, чтобы спрашивать вас.
Короче говоря, ищите повторяющиеся записи upload_tmp_dir в вашем файле PHP и устраняйте их.
HTH Льюис
PHP игнорирует upload_tmp_dir
из-за одной настройки в APPLICATION POOLS.
Это не php-cgi.exe
, php.ini
или проблема с разрешениями.
Перейдите в пул приложений веб-сайта, на котором возникла проблема:
Advanced settings
LOAD USER PROFILE
и установите его на FALSE
.Извините, но я неправильно понимаю ваш вопрос.
Если 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
папка. Надеюсь, это должна быть простая проблема конфигурации.