Не могу mkdir или открыть файлы на сервере, даже с разрешениями 777

Я вижу, что на аналогичные вопросы были даны ответы о переполнении стека, но решения не устранили мою конкретную проблему, поэтому я должен спросить …

У меня есть приложение, которое должно создавать каталоги и изменять файлы вне каталога сайта. Это работает найти на производственном сервере.

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

Вот ошибки:

mkdir() [http://php.net/function.mkdir]: Permission denied

fopen(/root/Dropbox/Backend/Booth-01/settings.sh) [http://php.net/function.fopen]: failed to open stream: Permission denied

Вещи, которые я пробовал:

  • проверка имени пользователя, запускающего приложение (это www-data)
  • рекурсивное изменение владельца внешнего каталога на www-data
  • изменение разрешений для каталога на 777 (я знаю, это плохая идея, но я просто пытался проверить, поможет ли это, пока не выясню, в чем проблема, и изменит разрешения на что-то более ограничительное, как только я его получу за работой)
  • проверка Umask значение. Он был установлен на 0002, что не должно вызывать у меня проблем. Просто ради удовольствия я попытался изменить его на 0000, и это не помогло.
  • проверка, чтобы убедиться, что PHP безопасный режим не был включен
  • проверка, чтобы убедиться, что ничего не было указано в open_basedir, В любом случае, если бы это было проблемой, было бы другое сообщение об ошибке.

Я не могу думать о том, что попробовать дальше, и я надеюсь, что кто-то еще видит что-то, чем я не являюсь.


Ubuntu 12.04.5 x64

PHP 5.3.10

-1

Решение

Это не только сама папка, на которую вы должны иметь права доступа. Вы также должны проверить родительские папки. Я думаю, если вы проверите это, это решит вашу проблему.

0

Другие решения

Если это внешний диск (посмотрите, отображается ли он в mount) тогда вам, возможно, придется перемонтировать его. Автоматически смонтированный внешний диск может помешать разрешению

sudo umount <moint-point>
sudo mount /dev/<device> <new-moint-point>
0

По вопросам рекламы [email protected]