Change Apache document root folder to secondary hard drive
I installed the ubuntu 12.04 server edition for my server pc . i had installed lamp server. i need to change the var/www location to my secondary hard disk location. i was configured so many time to at gedit /etc/apache2/sites-available/default here is my code
<VirtualHost *:80>
ServerAdmin webmaster@localhost
#DocumentRoot /var/www
DocumentRoot /media/myserver/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
#<Directory /var/www/>
<Directory /media/myserver/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
and also used
sudo chown -R var/www /media/myserver/
and
chmod -R 755 /media/myserver/
still i was not able to connect my /media/myserver and my browser show the following message
Forbidden
You don't have permission to access / on this server.
Please tell anyone how to mount myserver at my var/www, thanks advance
You'll have to edit apache2.conf
and 000-default.conf
to change the document root of apache.
The Apache server is installed on /var/www/html
.This is the default root directory of apache.
Either change the root directory of Apache or move the project to /var/www/html
.
-
To change Apache's root directory, run:
cd /etc/apache2/sites-available
-
Then open the
000-default.conf
file using the command:nano 000-default.conf
-
Edit the
DocumentRoot
option:DocumentRoot /path/to/my/project
-
Then restart the apache server:
sudo service apache2 restart
If you get Forbidden You don't have permission to access / on this server
after changing the root of apache then do follow these steps
-
Find the
apache2.conf
located in/etc/apache2
and open it using:nano apache2.conf
-
Use Ctrl+W and search for Directory (It should be in line 153)
-
It should look like this
<Directory /> Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>
-
Change it to
<Directory /> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory>
-
Restart apache
sudo service apache2 restart
I made a script that changes apache root in a single command. You can find it on my github.
Maybe a little bit late. But still..
You should edit your directory permissions in apache.conf under /etc/apache2
Search for this
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
and add this code under of it, which gives the permission to access your directory
<Directory /media/myserver/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Simply change the document root in your activated configuration. /etc/apache2/sites-enabled/000-default
and then Make sure reloading your apache.
So try with this:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /media/myserver/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /media/myserver/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Then the proper permission should be given like this:
sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/
-
you modify
apache2.conf
. Replace/var/www/
with/your/path
:<Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
-
Modify the
000-default.conf
file:DocumentRoot /your/path/
-
Change the ownership of the directories to yourself from file manager or terminal (e.g.
sudo chown pi: path
). Without this you will get this error message:You don't have permission to access / on this server.