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>
ServerName
should probably not have the :8009 portion, just the actual name.