Вопрос

Мой код

mkdir("/some/absolute/path",0777);

и

mkdir("relative/path", 0777);

Не работает, безопасный режим выключен, и я даже попробовал установить все родительские папки до 777.

Любые идеи?

Редактировать: У меня есть сообщение об ошибках включена, в моем разочаровании у меня 777, весь путь, чтобы убедиться, что это не проблема. Это должен быть что-то тупо просто продолжаться.

Редактировать редактирование: УПЗО для всех, кто ответил на предложения ... Но я не собираюсь выбрать ответ, так как это все еще не решено, но затем я думаю, что это будет один из тех, кто оставил открытым навсегда.

Отредактируйте х 3: Итак, у меня есть самое неудовлетворительное разрешение на этот вопрос когда-либо ... Я начал с чистого образа VM, повторю его, и это работает сейчас. Без шуток.

Это было полезно?

Решение

Вы пропускаете цитаты вокруг параметра имени пути.

Другие советы

Существуют ли все родительские каталоги?

Если нет, вам нужно включить рекурсию (при условии PHP5 здесь):

mkdir('/path/to/your/dir',0777,true);

Редактировать: не видел скрытый комментарий, говоря, что каждый каталог из var Даун был установлен на World-Rearable, поэтому я делаю ставку на путь каталога существует, и вышесказанное не будет полезно. Извини!

Вы пытаетесь создать эти каталоги рекурсивно, как вы сделаете с mkdir -p На командной строке? Если это так, укажите true как третий параметр для mkdir.

И просто для Echo предыдущие предложения, пожалуйста, укажите сообщения об ошибках, которые вы получаете. Если вы не получаете, используйте это до вашего звонка: error_reporting(-1); // ALL messages и ini_set('display_errors', 'On');.

Вы пытались с максимально кратчайшим тестом?

MKDIR («Справочник», 0777);

Если это не работает, я бы попробовал создать со стандартным CHMOD, как 0755 (это совершенно случайное угадание, возможно, сервер не позволит создавать 0777 через PHP)

Если это не сработает, я бы сказал, что сервер, вероятно, нуждается в разных настройках / PHP Thave The The White Thave Prange на папку, может быть, вы можете попросить вашего хоста поставщика?

У меня есть подобная проблема, и я узнал, что у меня нет свободное место оставил на моем приводе. Проверьте с командой df (на Linux) насколько полный диск. Возможно, что корню разрешено создавать файлы и папки в этой ситуации, потому что он имеет предварительно зарезервированное пространство. Если вы запустите ваш скрипт из командной строки, как root Пользователь - нет ошибок, но если ваш сценарий работает apache, Затем возникает ошибка.

Если кто-то застрял с этой проблемой .. Есть один ответ, который я могу дать вам, что я провожу 2 часа на поиске .. Я пытался с помощью полного пути, а также "../mydirectoryname".

Попробуйте использовать:

mkdir("./mydirectoryname", 0777, true);

Вместо..

mkdir("../mydirectoryname", 0777, true);

Для будущих ссылок проблема может прийти от возможности, что каталог, в котором вы пытаетесь создать свой новый каталог, не имеет достаточного разрешения.

Например, ваш каталог индекса может выглядеть так:index.php new_dirs_here

если new_dirs_here Нет достаточно разрешений, то вы не можете создавать дирижеры внутри.

Чтобы решить это, я бы использовал команду:chmod 777 new_dirs_here

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

Тогда, ваш mkdir() На диск должен работать просто хорошо.

Удачи

Вы должны принять атрибут в кавычках:

mkdir('path/to/your/dir','0777');
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top