Apache Webサーバーでディレクトリ一覧を有効にできません。投稿されたさまざまなソリューションを試しましたが、機能しませんでした。 httpd 2.4.6を新たにインストールし、/ etc/httpd/conf.d/ssl.conf dirの下でssl.confを使用してhttpsを有効にし、 https://server.example.com/ にアクセスしようとしました。しかし、これはディレクトリをリストしていません。これらはssl.confの構成です
DocumentRoot "/home/userx/Downloads/"
ServerName server.example.com:443
以下は、VirtualHost要素の下のssl.confにあるものです。ファイルと最初のディレクトリ要素は、インストール時にすでに存在していたので、「/ home/userx/Downloads」にディレクトリを追加しました。 URL https://server.example.com/ にアクセスするときに/ home/userx/Downloadsのコンテンツを参照したい。ここに何が欠けていますか?
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
<Directory "/home/userx/Downloads">
Options +Indexes
AllowOverride all
</Directory>
「/ icons /」ディレクトリにアクセス/リストできるかどうかを確認します。これは、ApacheでDirectoryの動作をテストするのに役立ちます。
たとえば、httpd.confファイルにデフォルトで以下の設定がある可能性がありますので、URLにアクセスしてください:IP:Port/icons /アイコンがリストされているかどうかを確認してください。また、「ディレクトリ/フォルダ'' var/www/icons '内。
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
動作する場合は、 ''構成を使用してカスタムディレクトリ構成をクロスチェックまたは変更できます。
Apacheからmod_autoindex
を有効にすることで問題を解決しました。デフォルトでは無効になっています。
Sudo a2enmod autoindex
これを試して。
<Directory "/home/userx/Downloads">
Options +Indexes
AllowOverride all
Order allow,deny
Allow from all
Require all granted
</Directory>
それでもうまくいかない場合は、おそらく設定を上書きしている「インデックスを拒否」している可能性があります。
Apacheのドキュメント こちら によると、DirectoryIndex
ディレクティブはサイト.conf
ファイル(通常はLinuxの/etc/Apache2/sites-available
にあります)で指定する必要があります。
ドキュメントから引用して、それは読みます:
DirectoryIndex
ディレクティブのファイルがディレクトリにない場合、mod_autoindexはディレクトリの内容のリストを生成できます。これは、Options
ディレクティブを使用してオンとオフを切り替えます。たとえば、特定のディレクトリのディレクトリ一覧をオンにするには、次を使用できます。<Directory /usr/local/Apache2/htdocs/listme> Options +Indexes </Directory>
ディレクトリのリストを防ぐために(たとえばセキュリティの目的で)、構成ファイルのすべてのOptionsディレクティブからIndexesキーワードを削除する必要があります。または、単一のディレクトリに対してのみそれらを防止するには、次を使用できます。
<Directory /usr/local/Apache2/htdocs/dontlistme> Options -Indexes </Directory>
これにより、SELinux設定である私の問題が解決されました。
chcon -R -t httpd_sys_content_t /home/*
ディレクトリリストを表示するには、ようこそページを明示的に削除し、サービスを再起動する必要がありました。
$ Sudo rm -rf /etc/httpd/conf.d/welcome.conf
$ Sudo service httpd restart
1つの方法は、/ var/www/html /ディレクトリーにリストしたいディレクトリーへのソフトリンクを作成することです。
Sudo ln -s /home/ /var/www/html/
セキュリティに留意してください。
この機能を使用するには、selinuxを無効にする必要がありました。注意。 selinuxを有効にするには、システムを再起動する必要があります。