I initially thought I had this problem:


But that did not help me.

I cd here:


I know the path to a2ensite:

  which a2ensite

And I tested the configuration files with this:

  apachectl configtest

I get:

  Syntax OK

I have this file:


which starts with:

  ServerName ralph.stagingv2.example.com
  DocumentRoot "/home/ralph/example/current/web"
  DirectoryIndex index.php

I created the DocumentRoot with:

  mkdir -p /home/ralph/example/current/web

And I changed permissions to the user we use on AWS:

  chown -R ubuntu /home/ralph/
  chgrp -R www-data /home/ralph/

but when I do:

  a2ensite ralph.stagingv2.example

I get:

  ERROR: Site ralph.stagingv2.example does not exist!

What did I miss?

  • What is the path to your ralph.stagingv2.example.conf file and what operating system is Apache installed on?
    – Colt
    Apr 19, 2016 at 15:28

1 Answer 1


a2ensite is a script that creates a sybolic link in /etc/apache2/sites-enabled pointing to a .conf file in /etc/apache2/sites-available.

In order to work, your .conf file must be in the "sites-available" directory, i.e.


You should NOT actually "place" ANY configuration file in the /etc/apache2/sites-enabled directory.

  • 1
    That's a nice tip, but not really any issue I want to deal with right now. But hell, I'll give it a try.
    – lorm
    Apr 19, 2016 at 16:28
  • 2
    Well, what exactly is it that you wanted help with then?
    – Colt
    Apr 19, 2016 at 17:24
  • 4
    Note that the file HAS to end with .conf, otherwise it is not recognized.
    – Black
    Sep 17, 2019 at 6:05
  • @Black this is the correct answer! Dec 14, 2019 at 15:34
  • I don't have either of the sites-available or sites-enabled directories. Should I be concerned?
    – Matt
    May 25, 2021 at 19:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .