2

Я использую Ubuntu 14.04, и у меня проблема с конфигурацией Apache:

Я создал символическую ссылку из /var/www/html torwards /home/me/myWebDirectory

но localhost/myWebDirectory отображает

403-разрешение отказано

и на самом деле sudo -u www-data ls /home/me/myWebDirectory возвращает разрешение, в котором также отказано

apache2.conf имеет следующую директиву:

<Directory /var/www>
           Options Indexes FollowSymLinks
           AllowOverride None
           Require all granted
 </Directory>

Я изменил его для <Directory /var/www/html> , но безрезультатно.

Я попытался добавить пользователя me в www-data group с помощью этой команды sudo usermod -a -G groupName userName , но это тоже не помогло

что я пропустил?

РЕДАКТИРОВАТЬ: я изменил группу /home/me/myWebDirectory на www-данные с правами rx, но безуспешно ...

Как я уже сказал, я хорошо знал, что у меня возникла проблема с разрешением на чтение, так как этот sudo -u www-data ls /home/me/myWebDirectory возвращает мне также отказано в разрешении (что означает, что www-data не имеет прав на просмотр. что в нем).

Но мне нужен определенный пункт вашего ответа, чтобы быть более ясным:

Также вы должны использовать URL "localhost/html" вместо "localhost/myWebDirectory".

На самом деле я сделал Symlink следующим образом:

  • cd /var/www/html
  • ln -s /home/user/me/myWebDirectory myWebDirectory

так что я думаю, что доступ к localhost/myWebDirectory - правильный адрес, нет?

chown -R www-data:www-data /var /www /html

  • Начиная с Ubuntu 14.04, Apache DocRoot является /var/www/html , почему я должен изменить его владельца (как и многие другие deamons, корни по умолчанию).
  • /localhost/testfile.html отлично работает (файл undertsand находится в /var/www/html)
  • /localhost/phpmyadmin тоже работает, даже если это SymLink для /usr/share (пока я пытаюсь использовать symLink для /home/user ...)

chmod +r /var /www /html # добавить разрешение на чтение в директорию

chmod +r /var/www/html/* # add read permission to files in dir
  • Добавить разрешение на чтение для кого? к моему пользователю?
  • Но это именно то, чего я не хочу делать.
  • Я действительно хочу, чтобы apache мог читать в /home /me /myWebDirectory, а не myUser для записи в каталогах apache.

NB: я знаю, что есть другой способ сделать это, активируя apache mod_userdir и это, вероятно, то, что я собираюсь сделать дальше. Но сначала я хотел бы понять, как заставить это "простое" решение работать ...

2 ответа2

1

я наконец решил свою проблему с помощью следующего решения, может ли оно помочь кому-нибудь в будущем ...

Судо выбрал меня:www-data /home /me
sudo chmod 710 /home /me

sudo chown -R me:www-data /home /me /myWebDirectory

sudo chmod -R g+r /home /me /myWebDirectory

Предостережение: вы можете, например, не хотеть, чтобы все подкаталоги были доступны для чтения через Apache, поэтому адаптируйте директиву -R(ecursive).

Но важно предоставить группе пользователей apache доступ на чтение к вашему дому, а затем доступ на чтение к соответствующему ребенку.

0

Проблема существует из-за отсутствия разрешений на чтение. Выполнение:

# chmod +r /var/www/html  # add read permission to dir
# chmod +r /var/www/html/* # add read persmission to files in dir
# chown -R www-data:www-data /var/www/html

Также ваш shouse использует URL "localhost/html" вместо "localhost/myWebDirectory".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .