Я столкнулся с действительно странной проблемой. Я пытаюсь выполнить запись в файл с помощью fopen()
.Права доступа к PHP запрещены
Это то, что я пытался в writetofile.php
:
$fw = fopen('/test.txt', 'w');
fwrite($fw, 'hello world' . "\r\n");
fclose($fw);
Это ошибка, я получаю:
Warning: fopen(/test.txt):
failed to open stream: Permission denied in C:\inetpub\wwwroot\writetofile.php on line 41
Warning: fwrite() expects parameter 1 to be resource, boolean given...
Я 100% уверен, что у меня есть права доступа к серверу. Я Администратор. Кроме того, я временно предоставил все разрешения всем. Я даже пытался запустить php-скрипт локально, непосредственно с сервера, используя localhost
. Я не использую apache, я использую IIS. Я попытался перезапустить IIS после изменения разрешений. Я не запускаю php в безопасном режиме.
Любая идея о том, что может вызвать эту проблему?
+1, Это сработало! Спасибо! Вопрос: Должен ли '/ test.txt' писать в корневой каталог, который совпадает с рабочим каталогом (C: \ inetpub \ wwwroot \) в моем случае? – AnchovyLegend
Поскольку PHP работает на уровне файловой системы. Это не могло быть меньше того, на каком URL вы попали, чтобы фактически запустить php-код. Он не видит URL-адреса. Он просто видит файлы на диске вашего сервера. Он не связан корневым документом сервера –
Нет fopen() использует системные пути и/является корневым каталогом вашей файловой системы «./test.txt» будет писать файл в вашем текущем рабочем каталоге –