デフォルトのApache.conf(ubuntuサーバー)には、次のブロックが含まれています。
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual Host.
# .... other items removed for brevity
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
このディレクティブの私の解釈は、Apacheが/usr/share
フォルダー内のアイテムのWeb閲覧を許可するということです。ブラウズして/usr/share/
でアイテムを表示しようとすると、何も表示されませんか?
/ usr/shareのコンテンツを参照するにはどうすればよいですか?
例えばブラウザにlocalhost/synaptic/html/index.html
を指定すると、404 not foundエラーが表示されます
Apacheがこのディレクトリの参照を許可している場合、本番サーバーでロックダウンする必要がありますか?
URLパスを/ usr/shareにマップする必要があります。これを行う最も簡単な方法は、エイリアスディレクティブを使用することです。次に例を示します。
Alias /share /usr/share
次に、http://localhost/share/synaptic
が/usr/share/synaptic
にマッピングされます。 エイリアスのドキュメント を参照してください。
/ usr/share内のすべてのファイルは、Apacheユーザーwww-dataを含む非rootユーザーが書き込み不可になっているはずです。それらはおそらくすべての人が読むこともできます。したがって、追加の制限なしに上記のようにそれらすべてを提供することは問題ないはずです。ただし、Apacheユーザーに見せたくない公開ファイルが/ usr/shareにある場合は、Require all deny
ディレクティブを使用して、それらのファイルへのアクセスをブロックできます。