I want to redirect the apache to a directory in my server to render from the index.html, I am using ubuntu 14.04 server.
1 Answer
Apache2 has the concept of sites, which are separate configuration files that Apache2 will read. These are available in /etc/apache2/sites-available
. By default, there is one site available called 000-default. This is what you will see when you browse to http://localhost
or http://127.0.0.1
. You can have many different site configurations available, and activate only those that you need.
As an example, you want the default site to be /home/user/public_html/index.html
. To do this, we must create a new site and then enable it in Apache2.
To create a new site:
Copy the default website as a starting point:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf
Edit the new configuration file in a text editor sudo nano
on the command line or gksudo gedit
, for example:
gksudo gedit /etc/apache2/sites-available/mysite.conf
Change the DocumentRoot
to point to the new location. For example,
/home/user/public_html/
In the file: /etc/apache2/apache2.conf, change the Directory directive, replace <Directory /var/www/>
to <Directory /home/user/public_html/>
You can also set separate logs for each site. To do this, change the ErrorLog and CustomLog directives. This is optional, but handy if you have many sites
Save the file
Now, we must deactivate the old site, and activate our new one. Ubuntu provides two small utilities that take care of this: a2ensite
(apache2enable site) and a2dissite
(apache2disable site).
sudo a2dissite 000-default && sudo a2ensite mysite
Finally, we restart Apache2:
sudo /etc/init.d/apache2 restart
If you have not created /home/user/public_html/index.html
, you will receive an warning message.
/etc/apache2/sites-enabled/000-default.conf
that will have an entryDocumentRoot
, that is where your files are being served from. Very likely:DocumentRoot /var/www/html