по умолчанию при установке апачь например создается юзер от имени которого апачь запускается
Обычно php выполняются от имени пользователя Apache (nobody или www-data). При этом чтобы разрешить PHP создавать файлы в директории, необходимо открыть эту директорию для записи всем (777), что не есть гуд.
Чтобы решить эту проблему необходимо установить suSUEXEC (модуль Apache, который меняет uid и gid пользователя на реального владельца)
Буду писать про Ubuntu/Debian
Установка:
apt-get install apache2-suexeс
Затем необходимо включить mod_suexec в Apache:
ln -s /etc/apache2/mods-available/suexec.load /etc/apache2/mods-enabled/suexec.load
Настраиваем виртуальный хост для работы с suEXEC.
Открываем конфигурационный файл виртуального хоста и добавляем директиву:
SuexecUserGroup <пользователь> <группа>
где <пользователь> и <группа> — владелец папки DocumentRoot.
Теперь осталось лишь перезапустить Apache
/etc/init.d/apache2 restart
После этого права на папки можно поменять на 755.
upd. Проверил на тестовом сервере. Заработала только папка userfiles с правами 755. пичалька. Надо подумать.