web-dev-qa-db-ja.com

許可が拒否されました:/var/www/abc/.htaccess pcfg_openfile:htaccessファイルを確認できません。読み取り可能であることを確認しますか?

こんにちは、私のウェブサイトにPHPを使用しており、システム上のUbuntu Linuxを使用しています。すべてを適切に設定した後でも、Apacheのerror.logファイルに上記のエラーが表示されました。私はこれについて多くの調査を行いましたが、問題を解決することができませんでした。誰でもこのリガードで助けてくれますか?以下は、abc directoryにある.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
42
PHPLover

HtaccessファイルがApacheで読み取り可能であることを確認します。

chmod 644 /var/www/abc/.htaccess 

そして、それが入っているディレクトリが読み取り可能であることを確認してくださいおよび実行可能:

chmod 755 /var/www/abc/
117
Jon Lin

ある用途のホームディレクトリを変更したときに、同じ問題が発生しました。私の場合、selinuxが原因でした。以下を使用して問題を修正しました。

selinuxenabled 0
setenforce 0
32
Aneesh

Selinuxアリーナに入ると、さらに複雑な問題が発生します。 selinuxの保護を削除するのは得策ではありませんが、それを受け入れて、それを管理するために設計されたツールを使用することは良い考えです。

/var/www/abcからコンテンツを提供している場合、通常のls -lコマンドにZを追加して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 

この答えは nixmen から取られ、この質問に合うように修正されました。私はしばらくの間この答えを探していましたが、最終的にはどこかで共有する必要があるように感じました。それが誰かを助けることを願っています。

6
jbrahy