fopen — Невозможно создать файл

Я пытаюсь создать файл на своем веб-сервере с параметром, выбранным из веб-формы. Файл никогда не создается, и я продолжаю получать сообщение «Не удается открыть файл».

<?php
if(isset($_POST["style"])) {
$boots = $_POST["style"];
}
$file = "bootsstyle";
if(!file_exists($file)) {
touch($file);
chmod($file, 0777);
}
$openFile = fopen($file, "w+") or die("Can't open file");
fwrite($openFile, $boots);
fclose($openFile);
?>

Я искал интернет в течение часа и не уверен, где я иду не так. Я проверил разрешения в каталоге, и они 0777.

0

Решение

$boots = "your data";
$file = "bootsstyle";
if(!file_exists($file)) {
touch($file);
chmod($file, 0777);
}
$openFile = fopen($file, "w+") or die("Can't open file");
fwrite($openFile, $boots);
fclose($openFile);
$myfile=fopen($file, "r");
echo fread($myfile,filesize($file));
fclose($myfile);
1

Другие решения

Проблема в разрешениях для каталога, в котором вы пытаетесь создать файл. Каталог, в котором находится скрипт php, должен быть доступен для записи группе пользователей с именем WWW-данные. Есть два способа решить эту проблему.

Способ 1: изменение разрешения каталога

Вы можете просто изменить разрешение каталога на 777. Для этого откройте терминал и перейдите в каталог, в котором находится ваш php-скрипт. Теперь выполните команду

sudo chmod 777 ./

Способ 2: Создание www-данных в качестве владельца каталога

Откройте терминал и перейдите в каталог, содержащий скрипт php. Теперь выполните команду

sudo chown www-data ./ && sudo chmod 774 ./

Вы можете узнать больше о разрешениях Linux и разнице между 774 и 777 из
https://linode.com/docs/tools-reference/linux-users-and-groups/

Замечания:
Открыв файл в режиме w +, создайте файл, если он не существует. Так что вам не нужно это трогать.

Замечания:
Приведенный выше код протестирован на kali linux 2017.3.2 с запущенным сервером LAMP.

0

По вопросам рекламы [email protected]