Как настроить 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,

Другие вопросы по тегам