Предупреждение: file_put_contents(): не удалось открыть поток: в доступе отказано

Привет, я новичок в Mac и веб-разработке.

В эти дни я пытаюсь сделать простую веб-страницу с простой формой с HTML и Javascript, и форма будет обрабатываться PHP. PHP будет иметь доступ к текстовому файлу, читать и записывать в этот текстовый файл.

Сообщение об ошибке исходит из этой строки кода.

file_put_contents("order.txt", $content);

и сообщение об ошибке

Warning: file_put_contents(order.txt): failed to open stream: Permission denied in /Users/maoyang/Sites/3006/process.php on line 57

все коды HTML и PHP находятся в папке myname/Sites/3006 на моем компьютере. Я провел некоторое исследование, и все они говорят мне, что мне нужно изменить некоторую конфигурацию, чтобы сделать текстовый файл доступным для записи, но на самом деле очень запутался, как это сделать. Кто-нибудь знает хорошую страницу инструкций, которой я мог бы следовать (для среды Mac).

Большое спасибо..


person Mona    schedule 01.04.2014    source источник
comment
Пользователь PHP работает, поскольку у него нет разрешения на запись в этот каталог.   -  person    schedule 01.04.2014
comment
Убедитесь, что у вас есть права доступа к папке, в которую вы пытаетесь поместить   -  person Chitowns24    schedule 01.04.2014


Ответы (1)


В OSX Apache запускается пользователем _www. Вы должны убедиться, что у этого пользователя есть права на запись в файл, который вы хотите изменить. Для этого откройте окно терминала и введите:

sudo chown -R _www:_www /Users/maoyang/Sites/3006

При запросе введите пароль администратора. Это изменит владельца папки /Users/maoyang/Sites/3006 на пользователя _www (того же, который запускает Apache), поэтому веб-сервер получит разрешение на запись в эту папку (и все подпапки и файлы)

person Daniele Pantaleone    schedule 01.04.2014
comment
но после использования этой команды я не могу сохранить изменения, внесенные в файлы html php.... - person Mona; 01.04.2014
comment
есть ли способ вернуть право собственности? - person Mona; 02.04.2014
comment
Да. Просто замените _www:_www на имя пользователя вашей учетной записи. Если проблема заключается только в изменении файлов html/php, вы можете решить ее, изменив битовую маску разрешения, например: chmod -R 777 *.php (после перехода с помощью терминала в корень документа) - person Daniele Pantaleone; 02.04.2014
comment
хорошо! это решит проблему! теперь я могу изменить php, а файл php может изменить файл txt. Феникс большое спасибо. :) - person Mona; 02.04.2014