この質問を何度も受けましたが、完全に詰まっていました。私の/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サーバーは重要ではないので、まったく気にしません。サーバーを最初からインストールする必要がある場合は問題ありません。ただし、お客様の状況は異なる場合があります。だから私のアドバイスを少しでも受け入れてください。それは大きなものです。