As I was working on one of my SaaS services that provides access to free Staging WordPress sites I stumbled on a problem. There are hundreds of sites on that server which are saved in semi random locations. I really needed to find where the virtual host configuration file is for a given site.

Here's video explanation:

Depending on your set up you can have one big apache vhost file that contains all the virtual host definitions and/or also have files for each site that your website server is serving.

To show all the sites that Apache serves run the following command as root.

apachectl -S

The list could be quite long so you can use less command to see the information page per page

apachectl -S | less

Now, if you want to list the location of the virtual host file for a site of yours run this command

apachectl -S | grep -i 'example.com'

To list information about the default virtual host

apachectl -S | grep -i 'default'

The output should look like this:

....
default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
default server localhost (/etc/apache2/sites-enabled/000-default.conf:32)
port 443 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:32)
...

The thing in the parenthesis is the location of the virtual host file.
e.g. /etc/apache2/sites-enabled/000-default.conf

 

Related

How to List All Virtual Hosts in Apache Web Server

 

Disclaimer: The content in this post is for educational purposes only. Always remember to take a backup before doing any of the suggested steps just to be on the safe side.
Referral Note: When you purchase through a referral link (if any) on this page, we may earn a commission.
If you're feeling thankful, you can buy me a coffee or a beer