Ошибки в fopen fwrite fclose

Karton

Новичок
Ошибки в fopen fwrite fclose

Помогите разобраться, вылазит такая ошибка в логах:

[Fri Aug 08 10:13:49 2008] [error] [client xxx.xxx.xxx.xxx] PHP Warning: fopen(/home/data/www/site.com/cache//fdf525a815dba43f79042038e39b5270.cache) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: Permission denied in /home/data/www/site.com/includes/cache.php on line 54, referer: http://site.com/news.php
[Fri Aug 08 10:13:49 2008] [error] [client xxx.xxx.xxx.xxx] PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/data/www/site.com/includes/cache.php on line 55, referer: http://site.com/news.php
[Fri Aug 08 10:13:49 2008] [error] [client xxx.xxx.xxx.xxx] PHP Warning: fclose(): supplied argument is not a valid stream resource in /home/data/www/site.com/includes/cache.php on line 56, referer: http://site.com/news.php

phpinfo можно посмотреть здесь http://karton.ispvds.com
 

tony2001

TeaM PHPClub
/home/data/www/site.com/cache//fdf525a815dba43f79042038e39b5270.cache -Permission denied


что конкретно тут неясно?
 

halgerd

Новичок
Автор оригинала: Страшный Злодей
Karton

Елки зелёные! Права доступа настройте :) [m]chmod[/m]
Ситуация посложней.
fopen($file, w);
fwrite(...);
fclose(...);

1-й раз выполняется нормально. Во второй раз - Permission denied. Меняю вручную права доступа - опять один раз выполняет и закрывает файл опять с защитой для записи.
Поставил поле цикла строчку chmod($file, 0775); - работает, но это ж не выход :) подскажите, что тут моджно сделать?
 

halgerd

Новичок
dimagolov, спасибо
Заодно и узнал что такое umask :)

Странное дело! Ошибка выскакивает при работе с довольно известной и набирающей популярность цмс. Причём в довольно часто появляющейся ситуации.
Вот что было обнаружено в коде:
@umask( octdec($global_umask) ); ($global_umask == 755)
по-моему, тут очевидно, что применять octdec нужно к кажной цифре отдельно, а не к числу 775(иначе результат получается 384), либо можно не применять вообще.

Однако чувствую подвох в своих рассуждениях, ведь никто никогда подобную ошибку не встречал.
 

dimagolov

Новичок
halgerd, в ман до полного просветления. смотрим тип параметра octdec.

п.с. права в записи '775' это в восьмеричной системе. ну а параметр umask в int
 

dimagolov

Новичок
halgerd, в какой десятичной? php не имеет такого типа данных. напиши строчку инициализации $global_umask
 
Сверху