2013-10-25 6 views
0

У меня есть два файла, которые я хочу читать с использованием php. Один файл находится в /var/www/html, а другой файл находится в /svn/access/ (каталог, который я создал). Я могу прочитать файл, который находится в /var/www/html, но другой нельзя прочитать.Не удалось открыть поток: Разрешение отклонено - при попытке чтения из файла

я получаю следующее сообщение об ошибке:

Warning: fopen(/svn/access/test): failed to open stream: Permission denied in /var/www/html/svnmanager/test2.php on line 5 

Я дал разрешение всех каталогов и файлов с помощью 'CHMOD' и 'Чаун'

chown -R apache:apache /svn* 
chmod -R 755 /svn 

chown -R apache:apache /svn/* 
chmod -R 755 /svn/* 

enter image description here

Но я Я все еще получаю эту ошибку, Когда я пытаюсь читать с пути /svn/access. Почему это происходит и как я могу это исправить? Пожалуйста помоги!

ответ

1

Наконец-то я нашел решение для этого. SELinux блокирует httpd для записи в любой папке, кроме /var/www/. Поэтому необходимо сделать некоторые конфигурации.

yum -y install policycoreutils-python

semanage fcontext -a -t httpd_sys_rw_content_t "/svn/access(/.*)?" 
restorecon -R /svn/access 
+0

Особенно важно, что это решение не отключает SELinux вообще, но изменяет его политику в соответствии с вашими потребностями. –

0

Вы используете sudo?

sudo chown -R apache:apache /svn* 
sudo chmod -R 755 /svn 

sudo chown -R apache:apache /svn/* 
sudo chmod -R 755 /svn/* 

вам может понадобиться, чтобы быть супер пользователю изменять разрешения

+0

Да я побежал эти команды с помощью учетной записи суперпользователя. –

+0

@CasperNine вы используете какую-нибудь панель, такую ​​как plesk? поскольку группе, возможно, не нужно быть apache: apache, возможно, это будет psacln: тогда пользователь как имя пользователя ftp. вы пытались использовать ls -la в папке, которая работает, чтобы увидеть, какая группа и пользователь установлены там? –

0

Всегда используйте 4 цифры, я имел много неприятностей, потому что я забыл, что. Так что 0755 будет моим предложением.

+0

Добавление 0755 не устраняет проблему :( –