SoaringHawk
Новичок
Как с правами пользователя установить TMPDIR?
Т.е. у меня проблема. На сервере в open_basedir не прописана /tmp директория, которая по умолчанию используется функциями tmpfile() и ftp_*list(). На просьбу ее добавить админ сказал – "нет, но в пхп можно переопределить ее для себя через переменные среды".
В мануале на php.net нашёл лишь одно упоминание об этом:
Искать через глобальные поисковики (Google, Yahoo, Yandex и т.д.) в буквальном смысле устал, потому, как обнаружилось, что в нете валяется, хренова туча копий основного мануала с php.net.
Но нашёл таки упоминания о файлах: .bashrc, .cshrc, .profile и .bash_profile. Пробовал создавать у себя в корне каждый из них с текстом:
И честно говоря, в итоге, я что-то немного запутался. Как все-таки определить только для себя свою папку для временных файлов?
Т.е. у меня проблема. На сервере в open_basedir не прописана /tmp директория, которая по умолчанию используется функциями tmpfile() и ftp_*list(). На просьбу ее добавить админ сказал – "нет, но в пхп можно переопределить ее для себя через переменные среды".
В мануале на php.net нашёл лишь одно упоминание об этом:
Поиск по всему php.net так же ничего не дал. Все упоминания о TMPDIR сводятся к банальному совету переопределить временную директорию. Но КАК если через putenv('TMPDIR=/mytmpdir') и apache_setenv('TMPDIR', '/mytmpdir') это не работает – ни где не сказано…Глава 38. Загрузка файлов на сервер
…
По умолчанию принятые файлы сохраняются на сервере в стандартной временной папке до тех пор, пока не будет задана другая директория при помощи директивы upload_tmp_dir конфигурационного файла php.ini. Директорию сервера по умолчанию можно сменить, установив переменную TMPDIR для окружения, в котором выполняется PHP. Установка переменной TMPDIR при помощи функции putenv() внутри PHP-скрипта работать не будет. Эта переменная окружения также может использоваться для того, чтобы удостовериться, что другие операции также работают с принятыми файлами.
…
Искать через глобальные поисковики (Google, Yahoo, Yandex и т.д.) в буквальном смысле устал, потому, как обнаружилось, что в нете валяется, хренова туча копий основного мануала с php.net.
Но нашёл таки упоминания о файлах: .bashrc, .cshrc, .profile и .bash_profile. Пробовал создавать у себя в корне каждый из них с текстом:
Не помогло. Пробовал с текстом:TMP=/pathtomytmp; export TMP
TMPDIR=$TMP; export TMPDIR
тоже не помогло. Пробовал еще в .htaccess прописать:setenv TMP /pathtomytmp
setenv TMPDIR /pathtomytmp
Все равно не работает. Хотя в скрипте getenv('TMPDIR') возвращает /pathtomytmp - tmpfile() по прежнему пытается создать файл в /tmp...setenv TMPDIR /pathtomytmp
И честно говоря, в итоге, я что-то немного запутался. Как все-таки определить только для себя свою папку для временных файлов?