こんにちは、私のウェブサイトに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
HtaccessファイルがApacheで読み取り可能であることを確認します。
chmod 644 /var/www/abc/.htaccess
そして、それが入っているディレクトリが読み取り可能であることを確認してくださいおよび実行可能:
chmod 755 /var/www/abc/
ある用途のホームディレクトリを変更したときに、同じ問題が発生しました。私の場合、selinux
が原因でした。以下を使用して問題を修正しました。
selinuxenabled 0
setenforce 0
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 から取られ、この質問に合うように修正されました。私はしばらくの間この答えを探していましたが、最終的にはどこかで共有する必要があるように感じました。それが誰かを助けることを願っています。