setting up subdomain on ubuntu server

I have a server at mysite.no-ip.org. Everything is working fine and I have a blog and owncloud that I access writing mysite.no-ip.org/blog and mysite.no-ip.org/owncloud. Now, I want to create subdomains so that I can write blog.mysite.no-ip.org and owncloud.mysite.no-ip.org.

I have looked a lot into it and the simplest tutorial was this one which I followed. http://www.bcat.eu/blog/local-subdomains-under-ubuntu-linux-and-apache-2-4-tutorial/ Except that I am not on my server but ssh into it remotely so if I use localhost I cannot see if this works I believe. This is my first obstacle, can I follow this tutorial without being present next to the server?

I also just discovered CNAME records which (I am not completely sure) seem necessary to what I want to do. I use no-ip.org and I have tried to follow something like this but this is not really clear either https://support.uberflip.com/entries/235780-4-4-5-how-to-setup-a-cname-redirect#noip

Does anyone have any pointers? This is quite shady to me and I have no idea if I am far from the solution or really close (at least if I could try localhost that would be a first step in order to check my Apache conf but I can't even do it since I ssh).

Anyways, thanks for your help in advance. Any help, link is welcomed.


Solution 1:

This is actually really easy.

First make sure your DNS is working. You can use a A, AAAA or CNAME record as long as it points to your IP address.

Please check if it's working before you continue! This will save you much trouble. You can check using ping subdomain.mydomain.com or nslookup subdomain.mydomain.com. If it's pointing to your IP address you're good.

Note that DNS changes may take up to 24 hours. If you want to continue now, you can edit your hosts file to manually add the sub domain. Note that this will only work for your current PC so you should check your DNS again 24 hours later to make sure it's working elsewhere as well (don't forget to revert your changes to your hosts file before you check).

To do this:

sudo nano /etc/hosts

add line like (replacing the IP and hostname of course):

34.54.235.64 subdomain.mydomain.com

and save the file.

Now update your Apache2 configuration.

Just adding this VirtualHost will do:

<VirtualHost *:80>
    ServerName subdomain.mydomain.com
    DocumentRoot /var/www/subdomain.mydomain.com
</VirtualHost>

Now create /var/www/subdomain.mydomain.com and restart Apache2:

mkdir -p /var/www/subdomain.mydomain.com
sudo service apache2 restart

enable the site:

sudo a2ensite subdomain.mydomain.com

Repeat this for every sub domain you want to add.