The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"php+apache can't fopen('file','w') "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Apache, http-серверы)
Изначальное сообщение [ Отслеживать ]

"php+apache can't fopen('file','w') "  +/
Сообщение от yumm (ok) on 08-Янв-06, 15:37 
День добрый. Вот бъюсь, уже ничего не понимаю...

В скрипте на php идет вызов:
if($fp=fopen("/var/www/html/other/cache1/test.txt", "w" ))...

В error_log'е имеем:
PHP Warning:  fopen(/var/www/html/other/cache1/test.txt): failed to open stream: Permission denied in /var/www/html/phpinfo.php on line 2

Доступ на каталог:
drwxrwxrwx  2 root root 4096 Янв  8 16:49 cache1

При этом из того же скрипта в /tmp все создается без проблем. И вызов 'php -f...' из-под любого пользователя также проходит (файл открывается для записи).

Apache 2.0.52 (крутится под 'apache:apache').
PHP 4.3.9
Где порылась собака (кроме как в моем ДНК)?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "php+apache can't fopen('file','w') "  +/
Сообщение от GD on 08-Янв-06, 18:43 
>День добрый. Вот бъюсь, уже ничего не понимаю...
>
>В скрипте на php идет вызов:
>if($fp=fopen("/var/www/html/other/cache1/test.txt", "w" ))...
>
>В error_log'е имеем:
>PHP Warning:  fopen(/var/www/html/other/cache1/test.txt): failed to open stream: Permission denied in /var/www/html/phpinfo.php
>on line 2
>
>Доступ на каталог:
>drwxrwxrwx  2 root root 4096 Янв  8 16:49 cache1
>
>При этом из того же скрипта в /tmp все создается без проблем.
>И вызов 'php -f...' из-под любого пользователя также проходит (файл открывается
>для записи).
>
>Apache 2.0.52 (крутится под 'apache:apache').
>PHP 4.3.9
>Где порылась собака (кроме как в моем ДНК)?

что показывают
ls -la /var/www/html/other/cache1
ls -la /var/www/html/other/cache1/test.txt
?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "php+apache can't fopen('file','w') "  +/
Сообщение от yumm (ok) on 08-Янв-06, 19:30 
>что показывают
>ls -la /var/www/html/other/cache1
>ls -la /var/www/html/other/cache1/test.txt
>?

$ls -la /var/www/html/other/cache1
итого 16
drwxrwxrwx  2 root root 4096 Янв  8 19:06 .
drwxr-xr-x  4 root root 4096 Янв  8 17:16 ..

а test.txt будет 755 а пользователь тот, от имени которого пускался скрипт из shell'а (естественно). если же писать скриптом в /tmp (из браузера, чего и не получается с каталогом /var/www...) пользователь будет, соответственно apache.

Вообще мне уже стало понятно, что дело в апаче, а не в чем-то еще.
Вот настройки /var/www/html:

DocumentRoot "/var/www/html"

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

но что-то мне подсказывает что все здесь правильно :(

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "php+apache can't fopen('file','w') "  +/
Сообщение от Niam on 08-Янв-06, 19:47 
>>что показывают
>>ls -la /var/www/html/other/cache1
>>ls -la /var/www/html/other/cache1/test.txt
>>?
>
>$ls -la /var/www/html/other/cache1
>итого 16
>drwxrwxrwx  2 root root 4096 Янв  8 19:06 .
>drwxr-xr-x  4 root root 4096 Янв  8 17:16 ..
>
>а test.txt будет 755 а пользователь тот, от имени которого пускался скрипт
>из shell'а (естественно). если же писать скриптом в /tmp (из браузера,
>чего и не получается с каталогом /var/www...) пользователь будет, соответственно apache.
>
>
>Вообще мне уже стало понятно, что дело в апаче, а не в
>чем-то еще.
>Вот настройки /var/www/html:
>
>DocumentRoot "/var/www/html"
>
><Directory />
>    Options FollowSymLinks
>    AllowOverride None
></Directory>
>
><Directory "/var/www/html">
>    Options Indexes FollowSymLinks
>    AllowOverride None
>    Order allow,deny
>    Allow from all
></Directory>
>
>но что-то мне подсказывает что все здесь правильно :(

убери php из safe-mode или дай файлам права под которыми апач.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "php+apache can't fopen('file','w') "  +/
Сообщение от yumm (ok) on 08-Янв-06, 20:03 
>убери php из safe-mode или дай файлам права под которыми апач.

в phpinfo(): safe_mode Off Off
а что такое "дай файлам права"???


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "php+apache can't fopen('file','w') "  +/
Сообщение от Niam on 09-Янв-06, 00:13 
>>убери php из safe-mode или дай файлам права под которыми апач.
>
>в phpinfo(): safe_mode Off Off
>а что такое "дай файлам права"???

>>Вот народ пошел. Читать "К словам придирается. Пользователя файлов сделать таким, от которого апач запускает скрипт."

Дело в том, что если php в режиме safe_mode, он не дает тебе доступ, если файл имеет права пользователя отличного от того, от которого запущен сам php. Хм, если он в нормальном режиме .. возможно реагирует на то, что пользователь root, попробуй сменить пользователя.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "php+apache can't fopen('file','w') "  +/
Сообщение от yumm (??) on 09-Янв-06, 11:26 
>Дело в том, что если php в режиме safe_mode, он не дает
>тебе доступ, если файл имеет права пользователя отличного от того, от
>которого запущен сам php. Хм, если он в нормальном режиме ..
>возможно реагирует на то, что пользователь root, попробуй сменить пользователя.

Он же не в safe_mode, о чем тут говорить. Пользователя менял. На весь корень www делал chown -R apache:apache... Не помогло. Сейчас уже перенес весь кэш в /tmp, что бы хоть как-то работало :( Но проблема остается. Странно, что никто не сталкивался. Скорей всего апач как-то криво настроен, но вот где копать?..

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "php+apache can't fopen('file','w') "  +/
Сообщение от Niam on 09-Янв-06, 13:42 
>>Дело в том, что если php в режиме safe_mode, он не дает
>>тебе доступ, если файл имеет права пользователя отличного от того, от
>>которого запущен сам php. Хм, если он в нормальном режиме ..
>>возможно реагирует на то, что пользователь root, попробуй сменить пользователя.
>
>Он же не в safe_mode, о чем тут говорить. Пользователя менял. На
>весь корень www делал chown -R apache:apache... Не помогло. Сейчас уже
>перенес весь кэш в /tmp, что бы хоть как-то работало :(
>Но проблема остается. Странно, что никто не сталкивался. Скорей всего апач
>как-то криво настроен, но вот где копать?..

Проверь, может ли пользователь apache с корня добраться к тому файлу. Может быть, что де-то на папке на пути нет rwxr-xr-x, тоесть возможность просматривать содержимое директории. аккуратно проверь!

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "php+apache can't fopen('file','w') "  +/
Сообщение от yumm (??) on 09-Янв-06, 17:54 
>Проверь, может ли пользователь apache с корня добраться к тому файлу. Может
>быть, что де-то на папке на пути нет rwxr-xr-x, тоесть возможность
>просматривать содержимое директории. аккуратно проверь!

По делу. Проверил. Все с правами ок (+x for everyone стоит на каждом каталоге в полном пути). Предлагаю забить, раз уж ответ сразу не нашелся =) Пусть кэш живет в /tmp, там ему и место...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "php+apache can't fopen('file','w') "  +/
Сообщение от GD on 09-Янв-06, 22:29 
>>Проверь, может ли пользователь apache с корня добраться к тому файлу. Может
>>быть, что де-то на папке на пути нет rwxr-xr-x, тоесть возможность
>>просматривать содержимое директории. аккуратно проверь!
>
>По делу. Проверил. Все с правами ок (+x for everyone стоит на
>каждом каталоге в полном пути). Предлагаю забить, раз уж ответ сразу
>не нашелся =) Пусть кэш живет в /tmp, там ему и
>место...

я так полагаю, что где то затесалась мелкая ошибка
ибо чудес быть не может
хотя apache2 может быть (не особо верятно) тому виной...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "php+apache can't fopen('file','w') "  +/
Сообщение от yumm (??) on 10-Янв-06, 09:57 
разобрался. я тупой дебил. selinux включен :(
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "php+apache can't fopen('file','w') "  +/
Сообщение от jackkot on 06-Июн-10, 02:27 
спасибо тебе добрый человек)) не знаю, сколько еще бы голову ломал
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру