file_put_contents и file_get_contents не работают в другом каталоге - PullRequest
0 голосов
/ 26 апреля 2011

, хотя file_put_contents и file_get_contents работают для /var/www/html/, они не работают для любых других каталогов, которые имеют того же владельца (apache) и chmod (644). В чем может быть причина? Спасибо за помощь ...

редактирование:

рабочий код:

$contents = file_get_contents("/var/www/html/osman");
$contents = str_replace("mehmet", '', $contents);
file_put_contents("/var/www/html/osman", $contents);

не работает код:

$contents = file_get_contents("/opt/blaris/etc/webfilter/lists/osman");
$contents = str_replace("mehmet", '', $contents);
file_put_contents("/opt/blaris/etc/webfilter/lists/osman", $contents);

и как мне грустно, два файла имеют одного владельца и chmod ...

1 Ответ

1 голос
/ 26 апреля 2011

Ибрагим

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

Я решил эту проблему, проверив путь (в вашем случае "/ opt / blaris /etc / webfilter / lists / "), если все разрешения установлены так, как должны.Это также включает в себя разрешения на чтение / запись для самого каталога lists и ВСЕХ каталогов, указанных выше.

Поэтому убедитесь, что все каталоги в вашем пути (по крайней мере) исполняются пользователем apache (например,Является ли / opt исполняемым для пользователя apache?Является ли / opt / blaris исполняемым ...Является ли / opt / blaris / etc исполняемым ...)

Также убедитесь, что PHP-скрипт действительно работает под пользователем apache (<?php echo shell_exec('whoami'); ?> должен предоставить вам информацию)

Если вы хотитеотладить его на уровне оболочки вы можете попробовать следующую команду и посмотреть, что говорит вывод (если у вас есть права на выполнение команды на сервере ...):

sudo -u apache touch /opt/blaris/etc/webfilter/lists/osman

Надеюсь, это поможет;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...