2012-04-26 4 views
0

Добрый день.
В PHP есть модуль PHP (.so). На этапе MINIT он пытается прочитать файл.
Файл /tmp/aaa.txt Каталог/tmp принадлежит root и его разрешения установлены на 777.
Файл /tmp/aaa.txt принадлежит пользователю apache и также имеет разрешение 777.Чтение файла с php-модуля с ошибкой с ошибкой 13

модуль открывает файл с VCWD_FOPEN(), который определяет для
#define VCWD_FOPEN(path, mode) virtual_fopen(path, mode TSRMLS_CC), который в конечном счете является Еорепом().

Ошибка VCWD_FOPEN с ошибкой 13 (разрешение отклонено).
Странная вещь, если я вызываю модуль вручную (#php -r 'echo "hi";') - он работает. Но когда он работает от apache - это не так.
Кто-нибудь знает почему?

Спасибо

+0

попробовать запустить ту же команду PHP под пользователем апача и посмотреть, что происходит, выглядит как вопрос разрешения на меня – ilanco

+0

Можете ли вы попробовать его, изменяя ваша группа пользователей apache так же, как и root? –

+0

Если я печатаю 'getuid()' и 'getgid()', они равны 0 (это означает, что я root). И до сих пор доступ запрещен. Если я помещаю файл в/etc - он работает. Но не в/tmp. Strange :( – Vasisualiy

ответ

0

Обнаружена проблема. Политика прав пользователя была применена SELinux. Чтобы отключить его я напечатал #setenforce 0
#service httpd restart

теперь работает

+0

Это может сработать, но это не исправление. –

+0

Это причина ошибки. Решение зависит от того, что мне нужно. – Vasisualiy

Смежные вопросы