Fedora 11: трабли з VirltualHost & SELinux, автоматичне створення віртуальних хостів з допомогою mod_vhost_alias

Fedora 11Продовжу свою розповідь (початок “Fedora 11 – перші враження“). Цього разу буде про:
Налаштування віртуальних хостів і можливі проблеми з SELinux;
Apache mod_vhost_alias;

Короткий відступ
В минулій статті я писав, що Fedora 11 працює швидше за Ubuntu 9.04. Виявляється не тільки в мене:

Во-первых, она продемонстрировала замечательное визуальное быстродействие. Я, конечно, прекрасно понимаю всю условность и субъективность этого понятия, но, в сравнении с Xubuntu 9.04 система отличалась, если так можно выразиться, “реактивностью”.
Fedora — не горе: впечатления

Пошук і встановлення необхідних пакетів не викликав жодних питань – “# yum -h” і вперед. Єдине, що потрібно підключити репозиторії rpmfusion для кодеків.

su -c 'rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

І по суті
А от з веб сервером, точніше з налаштуванням віртуальних хостів, проколупався майже цілий день. Справа в тому, що в я хотів покласти сайти в user home директорію (так зроблено на мому VDS і я вже до того звик). То ж створив необхідну директорію і додав в /etc/httpd/conf/httpd.conf наступне:

NameVirtualHost 127.0.0.1:80
 
<VirtualHost 127.0.0.1:80>
    DocumentRoot "/home/stfalcon/www/data/my/screensaver.in.ua/public"
    ServerName screensaver.in.ua.my
    ServerAlias www.screensaver.in.ua.my
    ErrorLog "/home/stfalcon/www/log/screensaver.in.ua.my-error_log"
    CustomLog "/home/stfalcon/www/log/screensaver.in.ua.my-access_log" common
</VirtualHost>

Ну і про “/etc/hosts” не забув. Перезапускаю апач (можна так “# service httpd restart”), лізу на хост, а він мені “Forbidden”… Я вже до нього і так і сяк – не йде :(. Поліз в тенета і на nabble побачив, що це може бути через SELinux.

SELinux (англ. Security-Enhanced Linux — Linux з покращеним рівнем безпеки) — реалізація системи примусового контролю доступу, яка може працювати паралельно з класичною discretionary access control. Входить в стандартне ядро Linux. Також для функціонування SELinux потрібні модифіковані версії деяких утиліт (PS, LS, і тд), які забезпечують підтримку нових функцій ядра, і підтримка з боку файлової системи.

Далі знайшов “Understanding and Customizing the Apache HTTP SELinux Policy” і все стало на свої місця. Щоб довго не мучитись виніс віртуальні хости в “/var/www/data”, перезапустив сервер – “свєршилось чудо” :).

Поки я колупався в конфігах, то побачив в коментах згадку про mod_vhost_alias. Це модуль, що дозволяє автоматично створювати віртуальні хости, замість того, щоб кожний раз додавати їх в конфіг ручками.

Ось таку структуру:

var
----www
--------data
------------my
----------------screensaver.in.ua
--------------------public
------------work
----------------mota.ru
--------------------public

Я описав так:

UseCanonicalName Off
VirtualDocumentRoot /var/www/data/%-1/%-2+/public

Тепер головне не забуватися додаватии до “/etc/hosts”, щось на зразок:

127.0.0.1    screensaver.in.ua.my mota.ru.work

🙂

Дякую за увагу 😉

Leave a Reply

Your email address will not be published. Required fields are marked *