Apache-403 禁止

Apache-403 禁止

この質問を何度も受けましたが、完全に詰まっていました。私の/var/www/htmlフォルダには次のものが含まれます。

mbfr/
|-- index.html
|
school/
|-- index.html

exemple.com私はディレクトリを提供し、mbfrディレクトリをexemple.com/school提供したいと思いますschool。これは私のVirtualHosts設定ファイルです。

<VirtualHost *:80>
    ServerName exemple.com

    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    Alias / /mbfr
    Alias /school /school

    <Directory "/var/www/html/school">
            Order allow,deny
            Allow from all
            Require all granted
    </Directory>

    <Directory "/var/www/html/mbfr">
            Order allow,deny
            Allow from all
            Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

exemple.comうまくいきますが、exemple.com/school私に与える

Forbidden
You don't have permission to access /school/ on this server.

答え1

* / schoolフォルダに正しい権限を設定しましたか?最近のOSのアップグレード後に/var/www/htmlにフォルダを再インストールした後も、同じ403メッセージを受け取りました。個々のファイルに対する権限はすべて大丈夫であることがわかりました。しかし、そのフォルダでは、所有者として読み取り、書き込み、および実行権限を持つ唯一の人でした。グループやその他にも読み取りと実行権限が必要なので、簡単なアプローチがchmod a+rx私に役立ちました。確認してみる価値があるかもしれません。

答え2

以下の私の答えは、実際の解決策ではなく、httpd周辺のセキュリティ適用を排除し、その効果を予測できない解決策であることを理解してください。しかし、優れた永続的な解決策が何であるかを理解するまでは効果があります。

サーバーの root ユーザーとして次のコマンドを実行します。

setenforce 0
service httpd start

このsetenforce 0コマンドは Apache を SELinux 許可モードに切り替えます。私はネットワーク管理者ではなく、Apacheに関する基本的な知識もないので、これはどのような影響があるのか​​わかりません。たぶん誰かが私たちの両方を実現するかもしれません。私のWebサーバーは重要ではないので、まったく気にしません。サーバーを最初からインストールする必要がある場合は問題ありません。ただし、お客様の状況は異なる場合があります。だから私のアドバイスを少しでも受け入れてください。それは大きなものです。

関連情報