Я использую Ubuntu в своем ноутбуке. Каждый раз, когда я включаю его и после инициализации Ubuntu, он запрашивает мой пароль администратора, который я предоставляю, чтобы иметь возможность использовать его. Я установил Sublime2, и я изучаю свои первые шаги в PHP / MySQL, я использую этот ноутбук с Ubuntu в моем классе программирования. Сегодня нам нужно было сделать несколько тестов fopen () в первый раз.
Я создал файл и добавил к нему этот код:
error_reporting(E_ALL ^ E_NOTICE);
$fp=fopen("prueba.txt",'w');
fwrite($fp, 'Curso de PHP');
fclose($fp);
echo 'Horray';
Теперь, когда я пытаюсь запустить файл (я использую Xampp в качестве локального apache, и я использую Chrome как мой браузер), я получаю эту ошибку (и файл вообще не создается):
Предупреждение: fopen (prueba.txt): не удалось открыть поток: в / opt / lampp / htdocs отказано в разрешении /curso_php1/inicial/ejemplo-archivos.php в строке 25
Предупреждение: fwrite () ожидает, что параметр 1 будет ресурсным, логическое значение указано в /opt/lampp/htdocs/curso_php1/inicial/ejemplo-archivos.php в строке 26
Предупреждение: fclose () ожидает, что параметр 1 будет ресурсным, логическое значение указано в /opt/lampp/htdocs/curso_php1/inicial/ejemplo-archivos.php в строке 27
Когда я дома, я попробовал код снова, в моем Windows Macine, и все работало как положено, без каких-либо ошибок.
Кажется, у меня недостаточно разрешений ( не удалось открыть поток: отказано в разрешении ), почему это так?
Почему это происходит? Что я должен делать? Спасибо! "
Пользователь, работающий с XAMPP, по-видимому, не имеет прав на запись в /opt/lampp/htdocs/curso_php1/inicial/
. Я бы попробовал записать в другой файл в месте с более разрешающими правами, например /tmp/
.
Кроме того, если вам не требуется использовать XAMPP, а просто нужен работающий Apache, попробуйте использовать пакет, предоставляемый Ubuntu. По моему опыту, небольшой выигрыш в комфорте из-за того, что вам не нужно настраивать Apache и PHP самостоятельно, не стоит проблем с разрешениями и обновлениями в долгосрочной перспективе.
Я обнаружил, что когда это происходит, это команды (я выкладываю их здесь только на тот случай, если кто-то еще столкнется с той же проблемой):
sudo chown -R myUserName /opt/lampp
sudo chmod -R 777 /opt/lampp
Я знаю, что предоставление Права доступа 777 недостаточно безопасны, но, поскольку мне это нужно на локальном хосте, и я использую его только для своих классов программирования, я думаю, что все в порядке.
Надеюсь, это когда-нибудь кому-нибудь поможет.