
ブラウザ経由で提供したいファイルは/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 が権限についてエラーを出力していることがわかります。root
www-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
次のような適切なラベルを付ける必要があります。