На хостинг-провайдере есть файл, например index.php, который залили по ftp. Мне необходимо открыть этот файл для перезаписи с помощью php. Я это делаю так:
$fp = fopen("index.php", "w");
fwrite($fp, "hello");
fclose($fp);
Но выдается ошибка: ERROR OPEN FILE.
Если же файла не было или он был создан с помощью php, то он нормально перезаписывается.
>На хостинг-провайдере есть файл, например index.php, который залили по ftp. Мне необходимо
>открыть этот файл для перезаписи с помощью php. Я это делаю
>так:
>$fp = fopen("index.php", "w");
>fwrite($fp, "hello");
>fclose($fp);
>Но выдается ошибка: ERROR OPEN FILE.
>Если же файла не было или он был создан с помощью php,
>то он нормально перезаписывается.
Прежде всего надо проверить права, которые получаются на хостинге в результате заливки по ftp
Скорее всего прав на запись недостаточно, или владелец не тот, тогда их надо добавить (опция атрибуты файла в фаре, или права доступа и владелец-группа в мц
>Прежде всего надо проверить права, которые получаются на хостинге в результате заливки
>по ftp
>Скорее всего прав на запись недостаточно, или владелец не тот, тогда их
>надо добавить (опция атрибуты файла в фаре, или права доступа
>и владелец-группа в мцЭто понятно, но я не хочу каждый раз ручками править права доступа в фаре. Я бы хотел на php менять права доступа, записывать, а потом менять на предустановленные. Но если файл или папка созданы не с помощью php, команда chmod в php не проходит.
>>Прежде всего надо проверить права, которые получаются на хостинге в результате заливки
>>по ftp
>>Скорее всего прав на запись недостаточно, или владелец не тот, тогда их
>>надо добавить (опция атрибуты файла в фаре, или права доступа
>>и владелец-группа в мц
>
>Это понятно, но я не хочу каждый раз ручками править права доступа
>в фаре. Я бы хотел на php менять права доступа,
>записывать, а потом менять на предустановленные. Но если файл или папка
>созданы не с помощью php, команда chmod в php не проходит.
><?php
`/bin/chmod 666 file`;
//запись в файл
`/bin/chmod 444 file`;
?>изврат конечно но работает
>>
>
><?php
>
> `/bin/chmod 666 file`;
> //запись в файл
> `/bin/chmod 444 file`;
>?>
>
>изврат конечно но работаеттак ведь Анатолий писал, что chmod на такие файлы от PHP не проходит, не запускать же PHP - скрипт с рутоввым стики-битом :(
А можно подробности?
- ftp неанонимное?
- какие права-владельцы-группа на файле, полученном по фтп?
- какие права-владельцы-группа на файле, полученном по ПХП?
- есть ли вообще рутовые права (скажем, может быть достаточно будет ftp-user-у группу поменять), или это какой-то жесткий хостинг?
>так ведь Анатолий писал, что chmod на такие файлы от PHP не
>проходит,
это я уже туплю>не запускать же PHP - скрипт с рутоввым стики-битом :(
а он и не запустится со стики битом - верней запустится но будет работать из под юзера апач.
Можно поставить стики юзера на chmod :) И потом через ПХП уже его применять как надо, жедательно сунуть его в диру с правами
701чтобы юзеры той же группы не смогли его запустить.
У меня была раньше подобная проблема :) - только я не кешировал - я пароли в файлах хронил - это когда я еще не знал что такое mysql :)
Там где я это делал:
php работает из под юзера www, группа www
а все пользователи принадлежели к группе users,так что все вышесказанное в моем случае работало весьма нормально - я думаю что здесь аналогично.
>Можно поставить стики юзера на chmod :) И потом через ПХП уже
>его применять как надо, жедательно сунуть его в диру с правами
>
>701
>
>чтобы юзеры той же группы не смогли его запустить.
то есть копию chmod?
>>Можно поставить стики юзера на chmod :) И потом через ПХП уже
>>его применять как надо, жедательно сунуть его в диру с правами
>>
>>701
>>
>>чтобы юзеры той же группы не смогли его запустить.
>то есть копию chmod?ну да.