How to setup apache2 virtualhosts on your home directory on ubuntu 14.04?

I am trying to setup my apache2 virtualhost to run applications from an apps directory on my home directory.

home/myusername/apps/application1

Here are the steps there I am currently doing:

1) Creating the directories and adding an index.html file to it.

home/myusername/apps/application1/index.html

2) Granting Permissions to the directories.

sudo chown -R $USER:$USER /home/myusername/apps/application1

sudo chmod -R 755 /home/myusername/apps

3) Creating the virtual host file

sudo touch /etc/apache2/sites-enabled/application1.app.conf

<VirtualHost *:80>    
    ServerAdmin webmaster@localhost
    DocumentRoot /home/myusername/application1
    ServerName application1.app
    ServerAlias www.application1.app

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

4) Activate the host

sudo a2ensite application1.app

5) Restart Apache

sudo service apache2 restart

6) Adding the domain to the host file

127.0.0.1    application1.app

After doing all this, when I type the address on the browser application1.app I get the following 403.

Forbidden
You don't have permission to access / on this server.
Apache/2.4.7 (Ubuntu) Server at application1.app Port 80

Any ideas on what I am doing wrong? Thanks all.


Solution 1:

When you use any non-standard directories with apache you need to also edit /etc/apache2/apache2.conf, and add in a <Directory /bla/bla> stanza so that apache knows it is OK to access the area. Just copy the existing /var/www or /var/www/html one. For example (from another question, and for a different location):

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

<Directory /media/newhd/test_web/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>