#php #fopen
#php #открыть
Вопрос:
Я использую Ubuntu 11.04. У моего / var / www есть владелец и группа shin (это мое имя)
Я использовал простой fopen php
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "Bobby Boppern";
fwrite($fh, $stringData);
$stringData = "Tracy Tannern";
fwrite($fh, $stringData);
fclose($fh);
Но это выдает ошибку «не удается открыть файл».
Связано ли это с владельцем и группой каталога www? Должен ли он быть root? или www-data?
Если владельцу нечего делать, то код выдает ошибку?
Заранее спасибо.
Комментарии:
1. не могли бы вы, пожалуйста, опубликовать полную ошибку php, которую вы получаете при запуске своего кода
2. Ой, я виноват. Я только что заметил вызов die, который, конечно, останавливает выполнение кода для отображения переданного ему сообщения — поэтому мой предыдущий комментарий недействителен. @shin Вам удалось решить проблему?
Ответ №1:
Вы должны указать полный путь к fopen, а не только имя файла, и убедиться, что пользователь, выполняющий php-код, также имеет права на запись (chmod до 666).
$myFile = "/var/www/testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
Ответ №2:
fopen возвращает предупреждение, если это не удается, включите отчет об ошибках, чтобы получить более подробную информацию о вашей ошибке. Добавьте следующую строку перед вашим блоком кода.
error_reporting(-1);
Ответ №3:
Предполагая, что вы используете веб-сервер (например, Apache), владелец серверного процесса должен иметь разрешение на запись в файл, поскольку вы открываете в 'w'
режиме. Это не обязательно должно основываться на владельце; это также может быть сделано с помощью mode. Чтобы узнать о режимах работы с файлами, выполните: man chmod
.