3

Я не новичок в php или файлах. Но я просто перенес чрезвычайно простой скрипт на новый сервер, который я настроил.

Папка, в которой запускается скрипт, находится в корне документа. Разрешения для папки установлены на 755.

Владелец папки - gsta. Владелец файла - gsta.

Я включил error_reporting и получаю:

Warning: fopen(log.txt): failed to open stream: Permission denied in /var/www/html/log.php on line 13

Я пробовал:

chmod("log.txt", 0777)

в php, а также получить разрешение запрещено.

Я сделал:

ps -u | grep httpd

и получил:

gsta      1012  0.0  0.0 108608   808 pts/3    S+   22:45   0:00 grep --color=auto httpd

Код:

$filename = 'log.txt';
$handle = fopen($filename,"a+");
echo "fh:" . fwrite($handle, $payload . "\n") . $handle . "<br/>";
fclose($handle);

даже если это не имеет значения, PHP безопасный режим отключен

Я попытался установить владельца файла на none (apache часто работает под ником, я также попытался установить владельца на apache.

Я посмотрел на каждую публикацию в Google, и это всегда основные вещи, которые я пробовал. Это был известный рабочий скрипт на другом сервере. Я попытался проверить php.ini в поисках некоторых настроек, которые могли бы вызвать эту проблему. Я попытался удалить файл (как это должно создать его в этом случае)

У кого-нибудь есть какие-либо идеи? Я перепробовал все, что мог придумать.

4 ответа4

5

Есть ли вероятность того, что некоторые средства безопасности, такие как SELinux, остановили эти действия?

Я столкнулся с подобной проблемой, и команда setenforce 0 , которая закрывала SELinux, успешно разрешила ее.

2

Пользователь httpd или apache другой. Проверьте имя пользователя apache из скрипта с помощью

<?php echo exec('whoami'); ?>
1

Я не знаю, что это может быть, но вы попытались создать файл из вашего скрипта. просто переименуйте файл, убедитесь, что fopen настроен на режим чтения (a должно быть в порядке), и пусть php создаст его для вас.

Если это не сработает, значит, у вас неправильные права доступа к папке, попробуйте установить для папки значение 777

также на моем ящике по некоторым причинам я должен использовать два нуля для chmod, 00777

0

"log.txt" вы уверены, что файл, который вы устанавливаете на 777, тот же самый? Без пути к нему, если страница считает, что она запускается, скажем, из корневого каталога вашего сайта, а не из того, в котором вы находитесь, вы можете получить ошибки таким образом, некоторые вызовы, как правило, также нуждаются в разрешении записи для каталога - Я не думаю, что я когда-либо дошел до сути того, почему некоторые делают, некоторые не делают.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .