Question

How to host a subdoman and main domain in a same droplet?

I have a droplet in Ubuntu 14.04,what I want to do is create a subdomain and host it in the same droplet.

My main domain : example.com Subdomain created : api.example.com

**What I tried so far: **

  1. Created a “A” record for api.example.com in Networking section

  2. Created a CNAME record for www.api.example.com

  3. Set up the virtual host for api.example.com following this How To Set Up Apache Virtual Hosts on Ubuntu 14.04 LTS

**Below is the step I tried to set up the virtual host **

  1. The droplet is installed Apache2 before,so I didnt install again

  2. Create the directory for my api.example.com by using this command sudo mkdir -p /var/www/api.example.com/public_html

  3. Create a demo page by using this command nano /var/www/api.example.com/public_html/index.html and add a simple html code inside it .

  4. I copy the 000-default.conf to my new created conf like this sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/api.example.com.conf

  5. I change the api.example.com.conf to the following:

<VirtualHost *:80>
    ServerAdmin myemailaddress@example.com
    ServerName api.example.com
    ServerAlias www.api.example.com
    DocumentRoot /var/www/api.example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. Lastly I use this command to enable the virtual host for api.example.com sudo a2ensite api.example.com.conf and restart the apache by sudo service apache2 restart

After all this step, I test my subdomain,but it doesnt work.It said refused to connect

so what I missing here?? Can somebody help??

Subscribe
Share

Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

I don’t understand - you cannot get IP with dig api.example.com but with host api.example.com you can ?

Please run these commands and paste outputs: dig example.com NS +short dig api.example.com +short dig www.api.example.com +short

It seems to be DNS problem. Please try to override default DNS on your PC, not server by adding 2 lines in “hosts” config file. On Linux/Mac it’s in /etc/hosts. On Windows it’s in %WINDIR%\system32\drivers\etc\hosts. Any changes need to be made with highest privileges by root or Administrator.

Add 2 new lines:

public_ip_of_server www.api.example.com```

And try site in browser.

Is DNS pointing to your Droplet IP dig api.example.com and dig www.api.example.com ?

Is Apache2 listening on 80 port netstat -tlnpu | grep -i 'apache' ?

Do you have any firewall iptables -nvL with Drop policy and not allowed ports 80 ? Maybe ufw is installed and filtering ports.

Is your config correctly loaded by Apache2 apache2ctl -S ?