Как настроить apache2 с символическими ссылками в /var/www/?
Я хочу настроить локальный веб-сервер на моем Ubuntu (14.04). Поэтому я установил все программное обеспечение, чтобы получить сервер LAMP.
Проблема в том, что я делаю что-то не так с созданием своих виртуальных хостов. Я хотел создать разные субдомены на моем локальном хосте. Так, например, site1.localhost и site2.localhost.
В моем /var/www/
каталог, который я создал символическую ссылку "site1" собирается /home/user/Workspaces/site1
,
В моем файле Apache error.log я получил следующую ошибку.
[core:error] [pid 12679] [client 127.0.0.1:59006] AH00037: Symbolic link not allowed or link target not accessible: /var/www/site1
В моей конфигурации Apache у меня есть:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Поэтому я думаю, что что-то не так с разрешениями папок. Я искал в Google, и я нашел несколько человек с той же проблемой, но все предоставленные ответы не сработали. Я добавил свое имя пользователя в группу www-data и тому подобное.
Так ls -la /var/www
возвращает:
total 12
drwxrwsr-x 3 user www-data 4096 okt 13 19:08 .
drwxr-xr-x 14 root root 4096 okt 1 22:50 ..
drwxr-xr-x 2 root www-data 4096 okt 1 22:50 html
lrwxrwxrwx 1 root www-data 29 okt 13 19:08 site1 -> /home/user/Workspaces/site1/
а также ls -la /home/juul/Workspaces/site1
возвращает:
total 24
drwxrwxr-x 4 user www-data 4096 okt 13 18:21 .
drwxrwx--- 3 user user 4096 okt 13 17:31 ..
-rw-rw-r-- 1 user user 0 okt 13 18:21 index.html
drwxrwxr-x 4 user www-data 4096 okt 13 16:12 .metadata
drwxrwxr-x 5 user www-data 4096 okt 13 16:53 Project
Надеюсь, кто-то может помочь мне с этим:-)
3 ответа
Эти разрешения мешают apache
от доступа к вам
drwxrwx--- 3 user user 4096 okt 13 17:31 ..
Вы должны дать права на выполнение для других:
chmod o+x /home/juul/Workspaces/
(и, возможно, на /home/juul/
также).
У меня стандартная установка apache на 14.04. Нет файлов или каталогов с указанием "www-data". Вы сами изменили все это? Существует много устаревшей или просто неверной информации о том, как настроить веб-серверы, поэтому будьте осторожны, следите за тем, кто следует, и отмените то, что не работает.
Тем не менее, "site1" должен быть в html
каталог, и принадлежит вам. Это не обязательно должна быть символическая ссылка; Вы можете указать другой каталог в файле конфигурации. Что-то вроде этого:
# Add this to the end of the existing 000-default.conf file (after "</VirtualHost>")
<VirtualHost *:80>
<Directory /home/user/Workspaces/site1>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
DocumentRoot /home/user/Workspaces/site1
ServerName site1
</VirtualHost>
Решение для: символическая ссылка не разрешена или цель ссылки недоступна: /var/www/html/mySymbolicLink
,
Это явно проблема с разрешениями. Проблема в том, что html в вашем домашнем каталоге принадлежит вашему пользователю, а сервер apache запущен другим пользователем, поэтому он не может получить доступ к вашему домашнему каталогу.
Решением будет добавление пользователя, работающего с Apache, в вашу группу, обычно такого же, как ваше имя пользователя. Итак, в моей коробке CentOS я сделал это как:
sudo usermod -a -G dev apache
Так что добавьте пользователя apache в группу dev. Теперь мне нужно дать разрешение на исполнение.
В /home
:
chmod g+x dev -R
Это даст разрешение на выполнение моей папки только для членов группы. И это все. Вам нужно будет изменить пользователя Apache для всего, что работает на вашем веб-сервере, я считаю, что для Ubuntu пользователь www-data
,