Why am I getting this error in the logs?

Ok so I just started a new ubuntu server 11.10 and i added the vhost and all seems ok ...I also restarted apache but when i visit the browser i get a blank page

the server ip is http://23.21.197.126/ but when i tail the log

tail -f /var/log/apache2/error.log 
[Wed Feb 01 02:19:20 2012] [error] [client 208.104.53.51] File does not exist: /etc/apache2/htdocs
[Wed Feb 01 02:19:24 2012] [error] [client 208.104.53.51] File does not exist: /etc/apache2/htdocs

but my only file in sites-enabled is this

<VirtualHost 23.21.197.126:80>
         ServerAdmin [email protected]
         ServerName logicxl.com
         # ServerAlias
         DocumentRoot /srv/crm/current/public
         ErrorLog /srv/crm/logs/error.log

           <Directory "/srv/crm/current/public">
             Order allow,deny
             Allow from all
           </Directory>
   </VirtualHost>

is there something i am missing .....the document root should be /srv/crm/current/public and not /etc/apache2/htdocs as the error suggests

Any ideas on how to fix this

UPDATE

sudo apache2ctl -S
VirtualHost configuration:
23.21.197.126:80       is a NameVirtualHost
     default server logicxl.com (/etc/apache2/sites-enabled/crm:1)
     port 80 namevhost logicxl.com (/etc/apache2/sites-enabled/crm:1)
Syntax OK

UPDATE

 <VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName logicxl.com
    DocumentRoot /srv/crm/current/public
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /srv/crm/current/public/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Solution 1:

This sounds like apache is not finding your sites-enabled directory.
Look in your apache2.conf file (etc/apache2/apache2.conf) for a line like this:

Include sites-enabled/

Change it to an absolute path like this:

Include /etc/apache2/sites-enabled/

This should do the trick.

Solution 2:

This is probably due to:

<VirtualHost 23.21.197.126:80>

Any request to http://localhost could have missed the initial vhost definition.

You then then changed it (correctly) to:

<VirtualHost *:80>

Unless you have a specific reason you should always use *:80 as this defines what address to listen on. ServerName defines what name to respond to . For example:

NameVirtualHost *:80
<VirtualHost *:80>
...
</VirtualHost>