Apache Multiple Sub Domains With One IP Address
Sounds like you need to add NameVirtualHost
directive to your configuration.
NameVirtualHost *:80
Under some circumstances Apache may not be able to handle *:80
VirtualHosts correctly. In those cases you should map VirtualHosts directly on specific IPs.
NameVirtualHost 8.8.8.8:80<VirtualHost 8.8.8.8:80> ServerName staging.mydomain.com ServerAlias stage.mydomain.com DocumentRoot /var/www/html/mydomain.com/staging/</VirtualHost><VirtualHost 8.8.8.8:80> ServerName dev.mydomain.com ServerAlias development.mydomain.com DocumentRoot /var/www/html/mydomain.com/dev/</VirtualHost>
You can also run apachectl -t -D DUMP_VHOSTS
to see how Apache parses the VirtualHost configuration.
Update: As mentioned in the comments, usually you can just use NameVirtualHost *:80
. So most of the time you can configure the virtual hosts as follows.
NameVirtualHost *:80<VirtualHost *:80> ServerName staging.mydomain.com ServerAlias stage.mydomain.com DocumentRoot /var/www/html/mydomain.com/staging/</VirtualHost><VirtualHost *:80> ServerName dev.mydomain.com ServerAlias development.mydomain.com DocumentRoot /var/www/html/mydomain.com/dev/</VirtualHost>