Назад | Перейти на главную страницу

Я не могу создать символическую ссылку на каталог в / var / www / html

Я читал об этом на очень многих ресурсах, но все еще пытаюсь понять это правильно. Справочная информация: я использую экземпляр Amazon EC2 с настройкой LAMP

У меня есть это репо на битбакете, в котором есть несколько каталогов: _fixtures, oldfiles, psds, webfiles. Я только хочу разместить webfiles каталог над корневым веб-каталогом в /var/www/html/. Я клонировал репо в свою домашнюю папку и пробовал создать символическую ссылку с помощью

ln -s /home/myuser/myrepo/webfiles /var/www/html/webfiles

Это приводит к ошибке 403 Forbidden access. я пробовал chmod папка webfiles должна принадлежать группе apache (чтобы у нее было разрешение на чтение), но это не помогает.

у меня тоже есть

<VirtualHost *:80>
     <Directory "/var/www/html">
         allow from all
         Options -Indexes FollowSymlinks
         AllowOverride All
     </Directory>

в моем httpd.conf чтобы включить символические ссылки, но все равно ничего. Любая помощь в том, как я могу выполнить эту ссылку, была бы оценена.

РЕДАКТИРОВАТЬ

На основе эта тема SO + ответ Я буду придерживаться стратегии просто проверить webfiles каталог.

РЕДАКТИРОВАТЬ 2

Прошло какое-то время, но я просто подумал, что оставлю здесь заметку, говоря, что другое решение, которое я мог бы попробовать для этого, - это клонировать репо где-то вроде /var/www/repos/myrepo а затем создать символическую ссылку webfiles каталог оттуда. Было бы проще, поскольку разрешения, скорее всего, уже существуют для /var/www.

Если в Amazon Linux включен SElinux, у вас могут быть проблемы с этим, и вам нужно разрешить httpd читать домашние каталоги пользователей.

 setsebool httpd_enable_homedirs 1

Я делаю нечто подобное - с установкой laravel в домашнем каталоге пользователя ec2, чтобы, когда я хочу обновить сайт, я мог сделать это без прав root.

В ключевой bit, или часть, которая заставила меня застрять, заключалась в том, что вам нужно разрешить доступ на выполнение каталога к домашнему каталогу пользователя ec2.

Невыполнение этого правила заставило меня некоторое время задуматься, почему это не работает.

Чтобы не открывать полностью разрешения, я добавил пользователя apache в группу ec2-user.

Как root:

usermod -aG ec2-user apache

Здесь ключевой немного ...

chmod g+x /home/ec2-user

Вам не нужен доступ для чтения к директрою, просто запустите, чтобы вы могли открыть каталог, чтобы перейти к нужным вам каталогам. Каталоги в домашнем каталоге уже должны иметь 'r' и 'x' для группового доступа. Возможно, вам потребуется добавить права записи в любой каталог кеша или журнала.

После этого вы можете настроить все как хотите - в моем случае это примерно так:

cd /var/www
ln -s /home/ec2-user/my_laravel_repo/public my_laravel

Затем я настраиваю DocumentRoot на /var/www/my_laravel наряду с разрешением символических ссылок и переопределений и т. д.

Вам также понадобится инструкция каталога для / home / myuser / myrepo / webfiles:

<Directory "/home/myuser/myrepo/webfiles">
     allow from all
     Options -Indexes
     AllowOverride None
</Directory>

Пожалуйста, попробуйте синтаксис ниже

<Directory "/var/www/html">
 Options -Indexes FollowSymLinks MultiViews
 AllowOverride All
 Allow from all
</Directory>

<Directory "/home/myuser/myrepo/webfiles">
 Options -Indexes FollowSymLinks MultiViews
 AllowOverride All
 Allow from all
</Directory>

Проверьте по умолчанию httpd.conf или apache.conf, если "AllowOverride" имеет значение "None" для каталога / var / www / html /

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

mkdir /var/www/html/webfiles
mount -o bind /home/myuser/myrepo/webfiles /var/www/html/webfiles

Как прокомментировал Тигран, вы должны убедиться, что apache действительно может читать каталог назначения.

В этом случае / home / myuser / myrepo / webfiles, помимо того, что веб-файлы доступны для apache, необходимы права на выполнение по всему пути (/ home; / home / myuser; / home / myuser / myrepo).

Вероятно, было бы лучше, если бы вы использовали каталог за пределами вашего дома, но при желании вы можете открыть разрешения.