web-dev-qa-db-ja.com

Apache Webサーバーでディレクトリ一覧を有効にする方法

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>
20
Satish Burnwal

「/ 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>

動作する場合は、 ''構成を使用してカスタムディレクトリ構成をクロスチェックまたは変更できます。

18
Pnkj

Apacheからmod_autoindexを有効にすることで問題を解決しました。デフォルトでは無効になっています。

Sudo a2enmod autoindex
4
Despirithium

これを試して。

<Directory "/home/userx/Downloads">
  Options +Indexes
  AllowOverride all
  Order allow,deny 
  Allow from all 
  Require all granted
</Directory>

それでもうまくいかない場合は、おそらく設定を上書きしている「インデックスを拒否」している可能性があります。

4
Eddimull

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>
4
MikeyE

これにより、SELinux設定である私の問題が解決されました。

chcon -R -t httpd_sys_content_t /home/*
1
Satish Burnwal

ディレクトリリストを表示するには、ようこそページを明示的に削除し、サービスを再起動する必要がありました。

$ Sudo rm -rf /etc/httpd/conf.d/welcome.conf
$ Sudo service httpd restart
1
harperville

1つの方法は、/ var/www/html /ディレクトリーにリストしたいディレクトリーへのソフトリンクを作成することです。

Sudo ln -s /home/ /var/www/html/

セキュリティに留意してください。

0
vineet

この機能を使用するには、selinuxを無効にする必要がありました。注意。 selinuxを有効にするには、システムを再起動する必要があります。

0
rahul verma