dafydd
dafydd

Reputation: 275

Apache won't autoindex

I'm setting up a repository in /srv/www for yum, scripts, and kickstart files, served via httpd. I want an auto-index, so I don't have any index.html. And, this is the only thing this internal server will do. So, httpd.conf:

DocumentRoot "/srv/www"

<Directory "/srv/www">
  AllowOverride all
  Options Indexes FollowSymLinks
  Require all granted
</Directory>

However, I still get the error message:

[autoindex:error] [pid 12345] [client <IP address>:<port>] AH01276: Cannot serve directory /srv/www: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive.

Except that the Options directive allows auto-indexing! I've tried Options All. I've tried Options +Indexes +FollowSymLinks. I've looked at 7 or 8 Google hits. Nothing is working.

Setting LogLevel debug doesn't increase messaging.

What have I missed?

Upvotes: 2

Views: 15020

Answers (4)

John Miller
John Miller

Reputation: 717

Solution: Ensure two apache modules are running:

  1. mod_autoindex.so
  2. mod_dir.so

In your case, mod_autoindex.so is running. Now enable the second one.

PS: Keep Options -Indexes. It's important. It makes sure that directory listings are disabled, as you shouldn't allow anyone to pay a visit to every directory on your server (some with rather private content such as CMS's directories).

Upvotes: 0

Felipe N Moura
Felipe N Moura

Reputation: 1617

I just want to add that, after updating my mac to Catalina, my apache stopped working with that same error. I had to:

  • uncomment the required modules (php7, rewrite, directory, etc...)
  • add a + sign to the Options (Options +FollowSymLinks +Multiviews +Indexes)

This worked for me.

Upvotes: 0

Daniel Ferradal
Daniel Ferradal

Reputation: 2890

Obviously landing in another virtualhost or Directory without indexes enabled, or a .htaccess getting in the way.

Set "AllowOverride none" first, since it is absurd to have it active if you are not using any .htaccess file (and since you have access to the main server you don't need it). Once you set AllowOverride, restart the server in case you added Indexes recently and didn't restart to apply changes.

If the issue persists, run apachectl -S and make sure you are landing in the correct virtualhost.

Upvotes: 0

dafydd
dafydd

Reputation: 275

As noted here, in the absence of an index.html (or other configured index file), the welcome page configured at /etc/httpd/conf.d/welcome.conf will take precedence over other configurations via its LocationMatch directive. Rename the file so it doesn't end in .conf and auto-indexing works.

Upvotes: 3

Related Questions