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

Я хочу использовать мой каталог Dropbox/Web в качестве каталога сервера для LAMP. Я 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>

И теперь я получаю

Forbidden

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

Apache/2.2.22 (Ubuntu) Server at localhost Port 80

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

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 группа для чтения / доступа: chmod g+r для файлов и chmod g+rx для каталогов.
Другие вопросы по тегам