Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I wan to use my Dropbox/Web directory as the server directory for LAMP. I cahnged /etc/apache2/sites-available/default

DocumentRoot /home/me/Dropbox/Web #changed from /etc/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /home/me/Dropbox/Web/> #changed from /etc/www
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

And now I get

Forbidden

You don't have permission to access / on this server.

Apache/2.2.22 (Ubuntu) Server at localhost Port 80
share|improve this question

2 Answers 2

up vote 3 down vote accepted

www-data, the group/user Apache runs is not allowed to read in your home directory.

You can use regular permissions to change that as gertvdijk explained in its answer.

I would consider using acl instead of regular permissions, allowing to add permission to apache instead of replacing the group in home directory or making the directory world readable.

For that, you need to install acl:

sudo apt-get install acl

You can use man setfacl to have more info.

To add permissions to apache:

sudo setfacl -m d:g:www-data:X,g:www-data:X /home/me
sudo setfacl -m d:g:www-data:X,g:www-data:X /home/me/Dropbox
sudo setfacl -Rm d:g:www-data:rX,g:www-data:rX /home/me/Dropbox/Web

1st and 2nd commands will allow Apache (www-data) to change directory only through the path (without allowing other subdirectories) in your home. They are probably not needed if you are using default config but if you already changed permissions (or will change in the future) to disalow other users to read in your home, they are needed.

The 3rd one is the command that will allow Apache to read and change directories in Dropbox/web and sub-directories).

Obs: uppercase X will act only on directories instead of lowercase x that would act on both files and directories (this way apache user is only able to change directories, not executing files).

share|improve this answer
    
thanx, works great –  ilyo Dec 23 '12 at 16:30

Apache probably can't read from your Dropbox directory. In Ubuntu, Apache is configured to run as user www-data. Make sure you set the permissions on your filesystem to allow Apache reading the whole path.

To test whether this is really your issue, try in a terminal

sudo su -l www-data -s /bin/bash

and then cd step by step to your Dropbox folder:

cd /home
cd me
cd Dropbox
cd Web

Fix the permissions, e.g.

  • chmod o+rx on directories and chmod o+r on files, or
  • change groups on files/directories chgrp www-data and allow only the www-data group to read/access: chmod g+r for files and chmod g+rx for directories.
share|improve this answer
1  
using chmod g+rX will do +rx on directories and +r on regular files. That's a lot easier ;) –  laurent Dec 23 '12 at 15:52

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.