You are basically correct, however missing a subtlety in the use of Options.
First, however, don't just stick them in the NameVirtualHost container, use a Directory Statement...
You are correct that the most specific ones apply, however, if an options statement contains a list of options where every one is prefixed with a + or -, then the options are merged with any existing options...
This means
Options Indexes FollowSymLinks
is merged with
Options -ExecCGI -Indexes
to form
Options Indexes FollowSymLinks -ExecCGI
Have a look at the apache documentation http://httpd.apache.org/docs/2.2/mod/core.html
and specifically at the example:
...if the second Options directive uses the + and - symbols:
<Directory /web/docs>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/docs/spec>
Options +Includes -Indexes
</Directory>
then the options FollowSymLinks and Includes are set for the /web/docs/spec
directory.
Hence, the behaviour Apache is exhibiting with your configuration is correct.
I would just explicitly declare the options for the NameVirtualHost as follows:
<Directory /var/www/html/deve>
Options +FollowSymlinks -Indexes -ExecCGI
</Directory>
ps aux | egrep '(apache|httpd)'
typically will show what apache is running as.
Usually you do not need to change the default user, "nobody" or "apache" are typically fine users. As long as its not "root" ;)
edit: more accurate command for catching apache binaries too
Best Answer
Yes.
conf.d
files are included in Apache's configuration with a line like:so changes are only noticed when the main configuration is reloaded. Note you can also use the 'graceful' restart (
/etc/init.d/httpd graceful
on some,apachectl graceful
on others) to reload the configuration without dropping existing connections.