У меня есть сервер с FreeBSD 8.0, Apache 2.2.23 и PHP 5.4.10. Это моя конфигурация VirtualHost:
<VirtualHost *>
ServerName site.com
ServerAlias www.site.com
DocumentRoot /usr/home/site/pub/htdocs/
php_admin_value open_basedir /usr/home/site/
php_admin_value session.save_path 0;0660;/usr/home/site/pub/tmp/
php_admin_value upload_tmp_dir /usr/home/site/pub/tmp/
</VirtualHost>
/usr/home/site/pub/tmp/ принадлежит site:www с разрешением 4770. Сессионные файлы создаются корректно (660 и сайт:www). Но загруженные временные файлы создаются с правами 600. Таким образом, поскольку этот временный файл принадлежит site:www и Apache, запущенному с www:www, move_uploaded_file() не может переместить файл.
Как это исправить?
Я думаю, что мне нужен патч PHP для принудительного набора разрешений для этого файла tmp. Но где? И какая внутренняя функция в PHP может это сделать?