Почему в php не создается директория с помощью mkdir?

  1. Категория:
  2. Программирование
  3. php
Автор: randi Тип контента: Вопрос Дата: 11:10 04-06-2025 Просмотров: 71 Ответов: 2
Почему is_dir() и file_exists() видят директорию, а mkdir() не может создать новую в той же папке?
К примеру у меня должна быть директория /var/www/my_site/main, но она пока еще не создана. Я хочу проверить, что такого пути нет и создать новую папку с помощью mkdir().
Но получаю ошибку:
Warning: mkdir() [function.mkdir]: Permission denied in ...

Код:
$path = '/var/www/my_site/main';

if (!file_exists($path) || !is_dir($path)) {
    mkdir($path);
}


Как исправить?
Нравится:
Loading...
1
Полезно:
Loading...
1
Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Автор: corkery
Дата: 13:29 04-06-2025
Попробуйте в mkdir передать параметры для создания папки с правами 777 и чтобы родительские каталоги создавались рекурсивно с теми же правами:
$path = '/var/www/my_site/main';

if (!file_exists($path) || !is_dir($path)) {
    mkdir($path, 0777, true);
}

Нравится:
Loading...
2
Полезно:
Loading...
1
Автор: paraBox
Дата: 15:39 04-06-2025
Не нужно выдавать права доступа 777 для всех папок. Так как это дает права на запись для всех.
Лучше проверьте и убедитесь, что права на папку /var/www/my_site принадлежит нужному пользователю.
К примеру в Ubuntu для web сервера Apache пользователь и группа www-data (У вашего web сервера может быть другой пользователь и другая группа).
Посмотрите какому пользователю принадлежит папка. Проверить можно так:
ls -la /var/www/my_site

Если на папку назначен пользователь, который не принадлежит вашему web серверу, то пробуем назначить необходимого вам пользователя. Приведу пример на www-data группе и пользователе.

Назначаем www-data пользователя и группу для вашей папки:
sudo chown -R www-data:www-data /var/www/my_site

Разрешаем права за чтение и запись для всех членов группы www-data:
sudo chmod -R g+rw /var/www/my_site

Нравится:
Loading...
2
Полезно:
Loading...
1
© 2024 Zambers.Ru All Rights Reserved.
Top.Mail.Ru

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем файлы cookies