user796443
user796443

Reputation:

How to fix ERROR: Site domain.com does not exist, while adding subdomain to apache2?

I'm trying to add subdomains to my home server.

svn.domain.com trac.domain.com

Due to dynamic IP I use dyndns service, on top of that I have domain.com hosted somewhere else. I created CNAME for subdomains on remote host to point to my user.dyndns.org domain.

So now when I visit either of subdomains: trac or svn, I see "It works!" message.

This done, I created two virtual host files under /etc/apache2/sites-enabled

file1: svn.domain.com and file2: trac.domain.com

contents:

<VirtualHost *:80>

  ServerName trac.domain.com

   DocumentRoot = /var/www/trac/repos

   <Directory /var/www/trac/repos>
    Order allow,deny
    allow from all
   </Directory>

</VirtualHost>

And

<VirtualHost *:80>

  ServerName svn.domain.com

   DocumentRoot = /var/svn/repos

   <Directory /var/svn/repos>
    Order allow,deny
    allow from all
   </Directory>

</VirtualHost>

But I get error: ERROR: Site trac.domain.com does not exist!

what am I doing wrong?

Upvotes: 20

Views: 30685

Answers (7)

Manolo
Manolo

Reputation: 26350

My solution for local server name is replacing:

sudo a2ensite serverName

with

sudo a2ensite serverName.conf

Upvotes: 1

Simon A. Eugster
Simon A. Eugster

Reputation: 4264

I had this problem when upgrading from Apache 2.2 to Apache 2.4. The (ridiculous) solution was to ensure all files end with .conf, or a2ensite would ERROR: Site example does not exist!.

Also, when linked manually in sites-enabled, they would not even load without the .conf extension.

Upvotes: 112

Ulrich Horus
Ulrich Horus

Reputation: 350

1) remove all default site inside sites-enable

a2dissite <site-configuration-file-name>

2) take a closed look at your config file: start with a minimum properties like:

<VirtualHost [Domain]:80>
ServerAdmin webmaster@localhost
ServerName [Domain]
DocumentRoot [webAppPath]

<Directory [webAppPath]>
    AllowOverride All
     Order allow,deny
     Allow from all
     Require all granted
</Directory>


ErrorLog ${APACHE_LOG_DIR}/my_domain_name_error.log

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

Upvotes: 0

tven
tven

Reputation: 547

if you type a2ensite. it will prompt. Which sites do you want to enable (ie., after you put a .conf file in the sites-available and link it from sites-enabled.

a2ensite expect the full name of the conf file with the .conf extension

Upvotes: 5

user2903751
user2903751

Reputation: 31

a2ensite ONLY accepts .conf files, so copy all sites in sites-available so the have a .conf extension (renaming didn't work itconfused the linkssomehow), erase the original files from sites-available AND sites-enabled. use a2ensite on the new files (you don't need to add .conf) and it all works, with our without the *.conf in /etc/apache2/apach2.conf

There must be some "memory" of the original file even when it is renamed -the symbolic link renames also, butthe erases & enabling "new" .con files works and you can then use a2dissite and a2ensite as before

Upvotes: 3

badcook
badcook

Reputation: 3739

I also came across the same problem when I upgraded from Apache 2.2 to 2.4; all my virtual hosts suddenly broke and while trying to search for why this was the case, I stumbled across this question.

It turns out the reason is because of a difference between my old apache2.conf and the new apache2.conf. My old Apache 2.2 conf file had the line

Include sites-enabled/

whereas my new Apache 2.4 conf file had the line

IncludeOptional sites-enabled/*.conf

Lo and behold, when I changed the line to

IncludeOptional sites-enabled/

everything went back to normal.

Upvotes: 19

BluesRockAddict
BluesRockAddict

Reputation: 15683

Try moving the files to /sites-available. Then run a2ensite svn.domain.com and a2ensite trac.domain.com and reload Apache.

Upvotes: 8

Related Questions