web-dev-qa-db-ja.com

Apacheは/ usr / shareをどのように使用または参照できるのですか? (Linux / Ubuntu)

デフォルトの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/でアイテムを表示しようとすると、何も表示されませんか?

  1. / usr/shareのコンテンツを参照するにはどうすればよいですか?

    例えばブラウザにlocalhost/synaptic/html/index.htmlを指定すると、404 not foundエラーが表示されます

  2. Apacheがこのディレクトリの参照を許可している場合、本番サーバーでロックダウンする必要がありますか?

7
Michael Coleman
  1. URLパスを/ usr/shareにマップする必要があります。これを行う最も簡単な方法は、エイリアスディレクティブを使用することです。次に例を示します。

    Alias /share /usr/share
    

    次に、http://localhost/share/synaptic/usr/share/synapticにマッピングされます。 エイリアスのドキュメント を参照してください。

  2. / usr/share内のすべてのファイルは、Apacheユーザーwww-dataを含む非rootユーザーが書き込み不可になっているはずです。それらはおそらくすべての人が読むこともできます。したがって、追加の制限なしに上記のようにそれらすべてを提供することは問題ないはずです。ただし、Apacheユーザーに見せたくない公開ファイルが/ usr/shareにある場合は、Require all denyディレクティブを使用して、それらのファイルへのアクセスをブロックできます。

4
Andrew Schulman