2013-12-17 32 views
32

大家好我使用PHP爲我的網站和Ubuntu系統上的Linux。我在apache的error.log文件中得到了上述錯誤,即使正確配置了一切後也是如此。我在這方面做了大量的研究,但無法解決問題。任何人都可以幫助我在這reagard?以下是我的.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文件是可讀被Apache:

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局域網服務器上的問題通過禁用'selinux'來解決 - 直到發生電源故障,並且顯示selinux設置沒有保存而沒有編輯conf文件。在重新啓動時保存selinux設置'vi/etc/sysconfig/selinux'找到並更改'SELINUX = enabled'這行'SELINUX = disabled'重新啓動** MACHINE ** – aequalsb

+0

解決了我的問題。 – YumYumYum

2

如果進入SELinux的舞臺,你已經有了一個更爲複雜的問題。刪除selinux保護措施並不是一個好主意,但要擁抱它並使用旨在管理它的工具。

如果您提供的內容超出/var/www/abc,則可以通過將Z附加到正常的ls -l命令來驗證selinux權限。即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採取和修改,以適應這個問題。我一直在尋找這個答案一段時間,最終發現它感覺就像我需要分享的地方。希望它能幫助別人。