2013-12-17 1 views
32

Привет всем Я использую PHP для своего сайта и ubuntu linux в своей системе. Я получил вышеуказанную ошибку в файле error.log apache, даже после правильной настройки. Я сделал много исследований по этому вопросу, но не смог решить проблему. Может ли кто-нибудь помочь мне в этом реаграде? Ниже приведен мой файл .htaccess в abc directory. Может ли кто-нибудь помочь мне в этом отношении?Разрешение отклонено: /var/www/abc/.htaccess pcfg_openfile: невозможно проверить файл htaccess, обеспечить его читабельность?

# -FrontPage- 

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti* 

<Limit GET POST> 
order deny,allow 
deny from all 
allow from all 
</Limit> 
<Limit PUT DELETE> 
order deny,allow 
deny from all 
</Limit> 
AuthName abc.org 
AuthUserFile /home/abc/public_html/_vti_pvt/service.pwd 
AuthGroupFile /home/abc/public_html/_vti_pvt/service.grp 
Options -Indexes 

RewriteEngine On 
RewriteRule ^alumni$ alumni.php 
RewriteRule ^student$ student.php 
RewriteRule ^view_alumni_article/view/([0-9]+)$ view_alumni_article.php?op=view&article_id=$1 
+1

У вас есть SELinux включен? – anubhava

ответ

85

Убедитесь, что файл Htaccess может быть прочитан апача:

chmod 644 /var/www/abc/.htaccess 

И убедитесь, что каталог это в читается и исполняемым:

chmod 755 /var/www/abc/ 
+0

У меня такая же проблема и изменение разрешений, как указано выше, заставило ее работать. Тем не менее, я не доволен, что корневой каталог '755'. Когда я делаю это '751', это работает. Это что-то наделать? –

+2

Я считаю, что есть исключения из этой работы. Если у вас есть suphp и/или suexec, вы можете получить дополнительную ошибку, если ваши файлы доступны для записи по группам. Поправьте меня если я ошибаюсь. –

+0

+1 для короткого и простого, но наиболее эффективного решения. Я полностью испортил ошибку, но ваше решение скалы! –

22

У меня было то же самое когда я изменил домашний каталог одного использования. В моем случае это было из-за selinux. Я использовал ниже, чтобы решить проблему:

selinuxenabled 0 
setenforce 0 
+4

У меня была такая же проблема, и вместо отключения selinux я обнаружил, что 'sudo restorecon -R <путь к сайту>' было достаточно для решения проблемы. – Segfault

+0

Решение Anessh работало для меня ... потому что все остальные решения выше полагаются на 'selinux' НЕ являются активными - проблемы с разрешением - это просто проблемы с разрешением. но эти решения бессмысленны, если selinux блокирует все (то же самое с 'restorecon'). проблемы на моем веб-сервере CentOS 6 LAN были решены путем отключения 'selinux' - до тех пор, пока не произойдет сбой питания и не обнаружены настройки selinux не будут сохранены без редактирования файла conf.для сохранения настроек selinux во время перезагрузки 'vi/etc/sysconfig/selinux' найти и изменить строку' SELINUX = enabled' на 'SELINUX = disabled' перезагрузить ваш ** MACHINE ** – aequalsb

+0

Решил мою проблему. – YumYumYum

2

Если он попадает в SELinux арену вы получили гораздо более сложный вопрос. Не рекомендуется удалять защиту selinux, но обнимать ее и использовать инструменты, предназначенные для управления ею.

Если вы подаете контент из /var/www/abc, вы можете проверить разрешения selinux с помощью Z, прилагаемого к обычной команде ls -l. то есть ls -laZ предоставит контекст selinux.

Чтобы добавить каталог, обслуживаемый selinux, вы можете использовать команду semanage следующим образом. Это изменит ярлык на /var/www/abc к httpd_sys_content_t

semanage fcontext -a -t httpd_sys_content_t /var/www/abc 

этого обновит ярлык для /var/www/abc

restorecon /var/www/abc 

Этот ответ был взят из unixmen и изменен, чтобы соответствовать этот вопрос. Я искал этот ответ на некоторое время и, наконец, нашел, что так чувствовал, что мне нужно где-то поделиться. Надеюсь, это поможет кому-то.

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