mkdir не работает в PHP - PullRequest
       32

mkdir не работает в PHP

6 голосов
/ 07 февраля 2010

Последние два часа я выдергивал свои волосы и уверен, что делаю что-то действительно глупое.

<?php
mkdir("blah", 0777);
?>

Это работает через командную строку, и папка создается. Но то же самое не работает, когда я пытаюсь запустить его через браузер. Какие-либо проблемы с правами доступа к файлу?

Ответы [ 3 ]

11 голосов
/ 07 февраля 2010

Может ли быть так, что при запуске из командной строки скрипт наследует ваши разрешения, но при запуске из браузера это не так?

В этом случае вы захотите сделать разрешения для вашего каталога 'написать 'для группы.

3 голосов
/ 07 февраля 2010

Ваш веб-сервер (apache?) Работает как собственный пользователь и не имеет разрешения на запись в каталог, в котором вы запускаете mkdir.

Дайте пользователю вашего веб-сервера разрешение на запись в каталог, либо A) сделав его владельцем, B) добавив его в группу, если у группы есть разрешение на запись, либо C) дайте всем разрешение на запись (не рекомендуется для большинства установок) ,

0 голосов
/ 15 января 2015

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

$old = umask(0); 
mkdir($path,0777); 
umask($old); 
...