Я хочу использовать мой каталог Dropbox / Web в качестве каталога сервера для LAMP. Я изменил /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>
И теперь я получаю
Forbidden
You don't have permission to access / on this server.
Apache/2.2.22 (Ubuntu) Server at localhost Port 80
www-data
, группе / пользователю, с которыми работает Apache, запрещено читать в вашем домашнем каталоге.
Вы можете использовать обычные разрешения, чтобы изменить это, как объяснил gertvdijk в своем ответе.
Я хотел бы рассмотреть возможность использования acl
вместо обычных разрешений, позволяющих добавить разрешение apache вместо замены группы в домашнем каталоге или сделать мир чтения каталогов.
Для этого вам нужно установить acl:
sudo apt-get install acl
Вы можете использовать man setfacl
, чтобы получить больше информации.
Чтобы добавить разрешения для 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
1-я и 2-я команды позволят Apache (www-data) изменить каталог только через путь (без разрешения других подкаталогов) в вашем доме. Они, вероятно, не нужны, если вы используете конфигурацию по умолчанию, но если вы уже изменили разрешения (или изменится в будущем), чтобы запретить other users
читать в вашем доме, они необходимы.
Третья команда - это команда, которая позволит Apache читать и изменять каталоги в Dropbox / web и подкаталогах.
Obs: верхний регистр X
будет действовать только на каталоги вместо строчных x
, что будет действовать как на файлы, так и на каталоги (таким образом, пользователь apache может изменять только каталоги, но не выполнять файлы).
Apache, вероятно, не может читать из вашего каталога Dropbox. В Ubuntu Apache настроен для работы от имени пользователя www-data
. Убедитесь, что вы установили разрешения для своей файловой системы, чтобы позволить Apache читать весь путь.
Чтобы проверить, действительно ли это ваша проблема, попробуйте в терминале
sudo su -l www-data -s /bin/bash
и затем cd
шаг за шагом перейти в папку Dropbox:
cd /home
cd me
cd Dropbox
cd Web
Исправьте разрешения например,
chmod o+rx
для каталогов и chmod o+r
для файлов, или chgrp www-data
и разрешают читать только группе www-data
/ access: chmod g+r
для файлов и chmod g+rx
для каталогов.