2013-12-17 6 views
32

こんにちは私は私のウェブサイトと私のシステム上でubuntu linuxにPHPを使用しています。私は正しくすべてを設定した後でも、上記のエラーがApacheのerror.logファイルにあります。私はこれについて多くの研究をしましたが、問題を解決することができませんでした。誰でもこの試剤で私を助けてくれますか?以下は私の.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

私は同じでした1つの使用のホームディレクトリを変更したときに問題が発生しました。私の場合、それはselinuxのためでした。それはあなたがはるかに複雑な問題を持っているSELinuxのアリーナに入った場合

selinuxenabled 0 
setenforce 0 
+4

私は同じ問題を抱えていましたが、selinuxを無効にする代わりに 'sudo restorecon -R 'が問題を解決するのに十分であることがわかりました。 – Segfault

+0

Anesshの解決策は私のために働いています...上の他のすべてのソリューションは 'selinux'に依存していないため、アクセス権の問題は単に権限の問題です。 selinuxがすべてをブロックしている場合( 'restorecon'と同じです)、これらの解決策は無意味です。私のCentOS 6 LAN Webサーバーの問題は 'selinux'を無効にすることで解決されました。電源障害が発生し、selinuxの設定がconfファイルを編集せずに保存されないことが明らかになりました。'vi/etc/sysconfig/selinux'を実行してSELinuxの設定を保存する' SELINUX = enabled'を 'SELINUX = disabled'に変更してください** MACHINE ** – aequalsb

+0

問題を解決しました。 – YumYumYum

2

:私はこの問題を解決するには、以下を使用していました。 selinuxの保護を削除するのではなく、それを受け入れ、それを管理するために設計されたツールを使用することは良い考えではありません。

/var/www/abcからコンテンツを提供している場合は、通常のls -lコマンドにZが追加されたselinuxのアクセス許可を確認できます。すなわちls -laZはselinuxのコンテキストを与えます。

selinuxが提供するディレクトリを追加するには、このようなsemanageコマンドを使用できます。これは、これはこの答えはunixmenから採取し、この質問に合うように修正された/var/www/abc

restorecon /var/www/abc 

のラベルを更新します/var/www/abc

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

にラベルを変更します。私はこの答えをしばらく探し求めていましたが、最終的にそれがどこかで分かち合う必要があると感じました。誰かを助けることを願っています。

関連する問題