Apache でディレクトリをホワイトリストに登録する方法

Apache でディレクトリをホワイトリストに登録する方法

ブラウザ経由で提供したいファイルは/root/my_folder(ubuntu 14.04) にあります。 でパス/var/www/html/root/my_folderからに変更した/etc/apache2/sites-available/000-default.confところ、ブラウザでアクセスしようとすると禁止エラーが発生します。

Apache のデフォルトのウェルカム ページには次のように記載されています。

デフォルトでは、Ubuntu は /var/www、public_html ディレクトリ (有効な場合)、および /usr/share (Web アプリケーション用) にあるファイル以外のファイルへの Web ブラウザー経由のアクセスを許可しません。サイトで他の場所 (/srv など) にある Web ドキュメント ルートを使用している場合は、/etc/apache2/apache2.conf でドキュメント ルート ディレクトリをホワイトリストに登録する必要がある場合があります。

でルート ディレクトリをホワイトリストに登録するにはどうすればいいですか/etc/apache2/apache2.conf。どのような構文を使用すればよいですか。

答え1

ディレクトリからサービスを提供することはできず、またそうすべきではありません。Apacheが user で実行されている間、/rootそのユーザーのみがアクセスできます。エラー ログを確認すると、Apache が権限についてエラーを出力していることがわかります。rootwww-data

tail -f /var/log/apache2/error.log

rootいずれにしても、システム上でユーザーと作業している場合は、/var/www/htmlすでに権限を持っているため、 内で直接ファイルをアップロードする必要があります。

答え2

最も簡単な回避策は、次のようにそのディレクトリをバインドマウントすることです/var/www/html

mount -t none -o bind,ro /root/my_folder /var/www/html

次にApacheを起動します。

注意: Fedora Linuxディストリビューションやsystemdを使用している他のディストリビューションでは、デフォルトで有効になっているセキュリティ機能により、一部のサービスでは開始後にマウントが行われたことを認識できません。詳細については、管理者のための systemd、パート XIIまた、SELinux を使用する場合は、ファイルにpublic_content_t次のような適切なラベルを付ける必要があります。

関連情報