У меня есть следующий простой скрипт для тестирования функции mkdir () в PHP:
<?php
$id = rand();
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/sample_folder/' . $id .'/';
mkdir(str_replace('//','/',$targetPath), 0755, true);
?>
В идеале это создаст случайную папку каждый раз, когда скрипт запускается в моем веб-каталоге / sample_folder.Sample_folder имеет 755 разрешений.
Проблема, с которой я сталкиваюсь, заключается в том, что я продолжаю сталкиваться с PHP: mkdir () Проблемы с отказом в разрешении.В настоящее время мои права для sample_folder установлены на chmod 755.
ВСЕ Я прочитал состояния, не относящиеся к chmod на 777, поэтому, пожалуйста, не предлагайте его.
В целях тестированияchmod 777, каталог «sample_folder» решает проблему, но опять же это создает проблемы безопасности.Есть ли что-то еще, что мне не хватает, как заставить это работать?
Обратите внимание: мои пользователи PHP в системе - это "apache";
Я использую PHP 5.3. * И CentOS 5.5на выделенном виртуальном сервере Media Temple для справки.Я также просмотрел почти каждый вопрос chmod по SO и, похоже, не могу найти решение, соответствующее моей проблеме (за исключением 777 предложений).
edit
Запуск ls -la на моемсервер возвращает:
drwxr-xr-x 2 ftphiddenname psacln 4096 26 января 11:24 sample_folder
окончательное обновление
Ответы были очень полезны,Для тех, кто ищет дополнительную информацию, я наткнулся на эту статью базы знаний, и хотя она включена в Media Temple, я уверен, что принципы применимы к любым наиболее похожим конфигурациям:
(dv): разрешение Apache Resolveошибки