Изменил каталог LAMP WWW на Dropbox, теперь получаю 403 Forbidden

Я хочу использовать мой каталог 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
2
задан 23 December 2012 в 19:06

2 ответа

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 может изменять только каталоги, но не выполнять файлы).

0
ответ дан 23 December 2012 в 19:06

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 для каталогов.
0
ответ дан 23 December 2012 в 19:06

Другие вопросы по тегам:

Похожие вопросы: