Як налаштувати apache2 за допомогою символьних посилань у / var / www /?


14

Я хочу встановити локальний веб-сервер на моєму Ubuntu (14.04). Тому я встановив усе програмне забезпечення, щоб отримати сервер LAMP.

Проблема в тому, що я роблю щось не так, створюючи свої віртуальні хости. Я хотів створити різні субдомени на своєму локальному хості. Так, наприклад, site1.localhost і site2.localhost.

У моєму /var/www/каталозі я створив символічне посилання "site1" /home/user/Workspaces/site1.

У моєму файлі erpar.log Apache я отримав таку помилку.

[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 та подібні речі.

Тож 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

Сподіваюся, хтось може мені допомогти у цьому :-)

Відповіді:


5

Ці дозволи перешкоджають apacheдоступу до вас

drwxrwx--- 3 user user     4096 okt 13 17:31 ..

Вам потрібно дати дозволи на виконання для інших:

chmod o+x /home/juul/Workspaces/

(і, можливо, /home/juul/також).


відповідно до відповіді @muru, переконайтеся, що у всіх каталогах, що містять, встановлений дозвіл "x". Якщо цього немає, то це ніколи не вийде
dawez

3

У мене стандартна установка 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>

1

Рішення для: символічного посилання не допускається або цільова посилання не є: /var/www/html/mySymbolicLink.

Очевидно, це проблема з дозволами. Проблема полягає в тому, що html у вашому домашньому каталозі належить вашому користувачеві, а сервер apache працює іншим користувачем, тому не може отримати доступ до вашого домашнього каталогу.

Вирішенням цього питання буде додавання користувача, який працює з апашею до вашої групи, як правило, такий же, як ваше ім'я користувача. Отже, у своєму вікні CentOS я зробив це так:

sudo usermod -a -G dev apache

Таким чином, це додає користувача apache до групи розробників. Тепер мені потрібно дати дозволи на виконання.

В /home:

chmod g+x dev -R

Це надасть дозвіл на виконання моєї папки лише членам групи. І це все. Вам потрібно буде змінити користувача Apache для того, на чому працює ваш веб-сервер, я вважаю, що для Ubuntu користувач www-data.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.