permission denied in при открытии файла на чтение

Unknown Soldier

Новичок
permission denied in при открытии файла на чтение

компьютер локальный, есть полный доступ ко всему, стоит fedora5
на строку:

$datafile = fopen ("$filename", "r");

PHP ругается "failed to open stream: Permission denied in" если filename находится вне document root (конкретно - принадлежит некоему пользователю с правами 666)
Если этот filename поместить в каталог к скрипту и сделать на него chown root:root и chmod 644 - всё работает. Это когда я захожу на сервер через http. Если же я запускаю скрипт локально:

# php ./script.php

Из-под рута, то все замечательно отрабатыет при любом расположении файла.
Уже и SELINUX=disabled сделал. В поиске обсуждаются проблемы с записью файла, а с чтением...
 

Фанат

oncle terrible
Команда форума
запись от чтения не отличается ничем.
какой смысл проверять под рутом, если веб-сервер исполняется не под ним?
точно ли указывается имя файла?
 

Unknown Soldier

Новичок
Если запись и чтение не отличаются зачем тогда у файла отдельно атрибуты r, w и x?
Под рутом проверяю как раз то, что имя файла правильное и вообще скрипт не кривой. Мысль склоняется в сторону следующих вещей:
selinux (вроде бы отключил, selinux=disabled, но может это не отключает его полностью),
апач (какая-то настройка не позволяет его php.so обращаться за пределы rootdir или то, что апач стартует под юзером apache. Я файл сделал принадлежащим вобще nobody с возможностью записи-чтения)
и последний вариант - что-то с настройками php (все настройки у меня дефолтные и его сэйфмод вроде отключен так что я в затруднении)
 

Фанат

oncle terrible
Команда форума
В поиске обсуждаются проблемы с записью файла, а с чтением...
запись от чтения не отличается ничем.
ТЕПЕРЬ ПОНЯТНЕЕ?

пиши полное сообщение об ошибке, если уж сам не можешь найти у себя опечатку.
ПОЛНОЕ, а не огрызок.
 

Unknown Soldier

Новичок
1. Нет. Если я буду просматривать файл, у которого установлен атрибут "только для чтения" (например на компакт-диске) - проблем не возникнет до того, как я попытаюсь его изменить. В данном случае я хочу прочесть файл. Естественно мне не знакомы принципы работы php с файлами (ну не просто так указывается "r").

2. [Sun Apr 30 00:47:50 2006] [error] [client 192.168.1.64] PHP Warning: fopen(/usr/local/jump/server/cstrike/mapcycle.txt) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: Permission denied in /var/www/html/kz_stats.php on line 7
 

kolobok

fPanel Billing Coder
Unknown Soldier
Код:
ls -la /usr/local/jump/server/cstrike/mapcycle.txt
сюда.
От кого запускается скрипт?
 

Unknown Soldier

Новичок
Код:
[root@HLDS html]# ls -la /usr/local/jump/server/cstrike/mapcycle.txt
-rw-rw-rw- 1 nobody nobody 2373 Apr 30 12:06 /usr/local/jump/server/cstrike/mapcycle.txt
От кого запускается скрипт?
от apache:apache - ошибка
от root:root - нормально

-~{}~ 01.05.06 01:07:

Код:
[root@HLDS cstrike]# ls -la /usr/local/jump/server/cstrike/mapcycle.txt
-rw-rw-rw- 1 apache apache 2373 Apr 30 12:06 /usr/local/jump/server/cstrike/mapcycle.txt
и так тоже не хочет
 

Unknown Soldier

Новичок
kruglov

[root@HLDS /]# ls -la /usr/local/jump/server/
total 30140
drwxrwx--- 6 hlds hlds 4096 Apr 29 10:40 .
drwxr-xr-x 4 hlds hlds 4096 Apr 29 10:19 ..
drwxrwx--- 14 hlds hlds 4096 Apr 6 11:58 cstrike

да, что-то я сглупил :) спасибо
 
Сверху