Я уверен, что кто-то уже спрашивал / отвечал на это раньше, но мой поиск мне не очень помог ...
У меня Eclipse IDE установлена на моем Linux-компьютере (LM13) с папкой 'workspace', расположенной @ /home/user/projects/workspace
У меня установлен и настроен Apache, я работаю с различными хостами, все из которых имеют свои папки где-то в корневом каталоге. /var/www/...
Проблема, с которой я столкнулся, заключается в том, что к виртуальному хосту, который я настроил для проекта в моем рабочем пространстве Eclipse, не может получить доступ Apache, и поэтому я получаю сообщение «403 - Запрещено - у вас нет разрешения на доступ / на этот сервер ".
Сначала я просто попробовал «нормальную» конфигурацию vhost, затем я попытался использовать SymLink под веб-корнем @ /var/www/freelance/project
связана с папкой проекта в рабочей области Eclipse
Я пробовал оба FollowSymLinks
и SymLinksIfOwnerMatch
для директивы options под <directory ...>
раздел, но я все еще не могу получить к нему доступ с помощью Apache в моем браузере!
Может ли кто-нибудь объяснить мне, как я могу заставить эту настройку работать? Я не пробовал использовать mod_userdir
еще, или установив права доступа к файлам на моем /home
папку, чтобы разрешить доступ к Apache, поскольку ни то, ни другое не казалось благоприятным. Есть другой способ?
Вот мой конфиг vhost:
# Apache VHOST config for IAGD
<VirtualHost my.iagd:80>
NameVirtualHost my.iagd:80
ServerAlias *.my.iagd
# ServerAdmin username@domain
DocumentRoot /var/www/freelance/iagd
<Directory /var/www/freelance/iagd/>
Options FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
# Define custom log level
LogLevel warn
# Set up custom log files
ErrorLog ${APACHE_LOG_DIR}/iagd/error.log
CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined
</VirtualHost>
Выход из ls -alFd ~/Projects/workspace/iagd
: -
drwxr-xr-- 6 user www-data 4096 Aug 22 14:12 IAGD/
Выход для того же на /home/user
: -
drwx------ 74 user user 20480 Aug 23 07:30 /home/user/
Вам нужно будет добавить директиву Directory для подкаталога вашего домашнего каталога. Когда Apache получает доступ к символической ссылке, будет доступен фактический каталог, на который указывает символическая ссылка, а не указатель символической ссылки.
Итак, вам понадобятся две вещи:
Во-первых, разрешения операционной системы. Ваш каталог должен быть доступен для чтения для пользователя Apache, а это означает, что во всех каталогах в иерархии выше должен быть установлен бит выполнения для пользователя Apache.
Во-вторых, конфигурация Apache. Необходимо сообщить Apache, что читать из этого каталога можно. Обычно вы хотите, чтобы Apache мог читать только ограниченную иерархию каталогов - в противном случае любой веб-пользователь мог бы, например, просматривать свой файл паролей или просматривать домашние каталоги каждого. Поэтому, когда вы хотите получить доступ к каталогу, находящемуся за пределами иерархии корневых веб-сайтов, вам нужно добавить директиву, указывающую Apache, чтобы это разрешить. Это будет выглядеть примерно так:
# Apache VHOST config for IAGD
<VirtualHost my.iagd:80>
NameVirtualHost my.iagd:80
ServerAlias *.my.iagd
# ServerAdmin username@domain
DocumentRoot /var/www/freelance/iagd
<Directory /var/www/freelance/iagd/>
Options FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
<Directory /home/user/projects/workspace>
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
# Define custom log level
LogLevel warn
# Set up custom log files
ErrorLog ${APACHE_LOG_DIR}/iagd/error.log
CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined
</VirtualHost>