Intereting Posts
Как получить доступ к динамическому свойству с помощью переменной? Ajax-вызов не работает Как изменить загруженное изменение пути по умолчанию на CKFinder с помощью php mysqli_insert_id: Что, если кто-то вставляет другую строку непосредственно перед тем, как я позвоню? Как создать пользовательское меню / подменю с помощью wp_get_nav_menu_items в wordpress? PDO SQL-состояние «00000», но все же ошибка? API для магистрали будет доступен другим веб-сайтом или устройствами Вложенные отношения Laravel PHP Mink / Zombie – просмотр страницы возвращает код состояния 0? синтаксическая ошибка, неожиданная «функция» на линии 12 Итерирование PHP через простой список, разделенный запятыми Как получить стоимость от Paypal? Классы массивов PHP переупорядочивают Могу ли я разработать отдельные API-вызовы с помощью php для мобильного приложения, используя сайт wordpress? Передача переменной с fancybox на родительскую страницу при закрытии fancybox

Проблема с правами доступа к папке PHP

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

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

/home/site (owner : user1) 

Теперь я создаю папку, используя

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

Создается каталог / home / site / newdir, но пользователь этого каталога – « apache »,

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

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

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

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

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

РЕДАКТИРОВАТЬ :

 <?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 включен. Все еще не знаете причину того, что именно делает безопасный режим, который не позволяет создавать вложенные каталоги.

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

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

Пытаться:

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