2011-09-10 2 views
3

Я пытаюсь создать папку, а затем другую папку в ней, используя PHP.Проблема с правами доступа к папке PHP

Если это структура каталогов У меня есть

/home/site       (owner : user1) 

Теперь я создаю папку с помощью

mkdir("/home/site/newdir",0777);  (user : apache) 

Каталога, /главных/сайта/NEWDIR создается, но пользователь, что справочник "apache"

Теперь, делая

mkdir("/home/site/newdir/anotherdir",0777); 

не создает другой каталог внутри newdir.

Пожалуйста, помогите. Я думаю, что это проблема владельца. Я не могу изменить владельца, используя chmod() либо. Владелец остается тем же.

Что может быть причиной этого?

EDIT:

<?php 
error_reporting(E_ALL); 

mkdir("./m",0777); // works 
mkdir("./m/v",0777); // doesnt work 

И никаких ошибок на этой странице.

var_dump(is_writeable("./m")) // returns bool(true) 

EDIT: Это было исправлено. Для других, которые могут столкнуться с одной и той же проблемой, из-за того, что безопасный режим PHP включен. Все еще не знаете причину того, что именно делает безопасный режим, который не позволяет создавать вложенные каталоги.

Но он работает сейчас. Спасибо всем за чтение.

+1

Вы создаете каталог с 0777 разрешениями, это не должно быть проблемой разрешения. Есть ли у PHP ошибка при попытке создать каталог внутри/home/site/newdir? – arnaud576875

+1

У вас есть ошибка? – Ikke

+0

Нет ошибок. var_dump (is_writeable ("./ m")) возвращает true. Проверьте мой отредактированный пост. –

ответ

1

Режим в каталоге, созданном mkdir(), зависит от вашего текущего umask, поэтому chmod() не работает для вас.

Try:

$old_mask = umask(0); 
mkdir("/home/site/newdir/anotherdir",0777); 
umask($old_mask); 

 Смежные вопросы

  • Нет связанных вопросов^_^