4

Setting up a dev LAMP server and I wish to allow dynamic subdomains, aka ted.servername.com, bob.servername.com.

Here's my sites-active file

<VirtualHost *:80>
    # Admin Email, Server Name, Aliases
    ServerAdmin     not@real.com
    ServerName      happyslice.net
    ServerAlias     *.happyslice.net

    # Index file and Document Root
    DirectoryIndex  index.html
    DocumentRoot    /home/sysadmin/public_html/happyslice.net/public

    # Custom Log file locations
    LogLevel        warn
    ErrorLog        /home/sysadmin/public_html/happyslice.net/log/error.log
    CustomLog       /home/sysadmin/public_html/happyslice.net/log/access.log combined

And here's the output from sudo apache2ctl -S

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server happyslice.net (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost happyslice.net (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost happyslice.net (/etc/apache2/sites-enabled/happyslice.net:5)
Syntax OK

The server hostname is srv.happyslice.net.

As you can see from apache2ctl when I use happyslice.net I get the default virtual host, when I use a subdomain, I get the happyslice.net host. So the later is working how I want, but the main url does not.

I've tried all kinds of variations here, but it appears that ServerName just isn't being tied to the correct location.

Thoughts? I'm stumped. FYI, I'm running Apache2.1 and Ubuntu 10.04 LTS

joschi
  • 21,387
  • 3
  • 47
  • 50

4 Answers4

3

I had almost the exact problem you're having. It stemmed from the default ServerName (in /etc/apache2/conf.d/servername.conf) and the ServerName in my VirtualHost definition file (/etc/apache2/sites-available/site.com) being equal.

Matt Alexander
  • 250
  • 2
  • 10
1

for each subdomain, create a file just like the one you have listed above, except just give the subdomain as the servername. remove the *.mydomain.com as a server alias. enable the config files in apache, and restart apache.

0

Just solved this problem, it's simple. Change your hostname to something different than the virtual hostname.

sudo mcedit /etc/hostname

спасибо

0

I believe what you are looking for will require sections for the hostnames you want the server to respond to. What you have configured currently all port 80 traffic is picked up and pointed at /home/sysadmin/public_html/happyslice.net/public

Try adding a section and a section with appropriate document roots. This way you can use bill and ted to serve up different content from the same server with the outward look and feel of a different server.

http://httpd.apache.org/docs/2.2/vhosts/