php mkdir () разрешения запрещены Mac - PullRequest
3 голосов
/ 04 марта 2012

Кажется, это общая проблема, но я не могу найти точного ответа, который ищу.Я использую XAMPP на OSX, и в моем веб-приложении я пытаюсь разрешить администратору создать каталог, если в течение нового года его не будет.Итак, в htdocs / mywebapp / images, если каталог не существует, скажем, в 2012 году, тогда mkdir () и начать загрузку файлов в этот каталог.

Запуск ls -l из каталога mywebapp показывает, что каталог images создается как

drwxr-xr-x   18 myusername  admin    612 Feb 12 17:32 images

, поэтому первое, что я попробовал, было

sudo chmod 0775 images

, который не сделалТ помочь.Просмотр файла httpd.config показывает, что пользователь / группа определена как www: www, поэтому я попытался изменить владельца / группу на:

sudo chown www:www images

, что привело к ожидаемому результату:

drwxrwxr-x  18 _www      _www     612 Feb 12 17:32 images

но, опять же, я получаю ошибку «Отказано в доступе».Итак, я в растерянности относительно того, каков мой следующий шаг.PHP-код, который я использую для достижения этой цели, находится здесь:

$directory_self = dirname(__FILE__);
$base_image_path = $directory_self . '/images/'; // outputs "/Applications/XAMPP/xamppfiles/htdocs/mywebapp/images/"
$year = '2012';
$image_path = $base_image_path . $year . '/'; // outputs "/Applications/XAMPP/xamppfiles/htdocs/mywebapp/images/2012/"
if(!file_exists($image_path)){
    mkdir($image_path, 0775);
}

Спасибо за вашу помощь.

1 Ответ

6 голосов
/ 04 марта 2012

попытаться проверить реального владельца процесса:

  $processUser = posix_getpwuid(posix_geteuid());
  echo($processUser['name']);
...