Шукати в цьому блозі

Віртуальний хост на сервері Apache2

Сервер на платформі Debian.

Виникла необхідність на сервері організувати два сайти з різними адресами. Мережна карта на сервері для локальної мережі одна (друга для виходу в Інтернет). В даній статті пояснюється процес налаштування сервера для роботи на ньому другого сайту.





Для мережного інтерфейсу, який зв’язаний з локальною мережею створюємо віртуальний інтерфейс з іншою ip-адресою. Ця адреса буде використовуватись для другого сайту.

ifconfig eth2:1 192.168.0.254 netmask 255.255.255.0 up

Пояснення до команди:
Ip-адресу можна вказати іншу. Визначити, який інтерфейс має вихід до мережі можня командою route в терміналі. Буде виведено таблицю інтерфейсів і приписані до них ip-адреси. Зняючи ip-адресу сервера в мережі, ви дізнаєтесь відповідний інтерфейс (наприклад: eth2). Після інтерфейсу через ":" вказується номер віртуального інтерфейсу (eth2:1).

Створюємо теку для сайту (наприклад /var/sitelocal). За необхідністю встановлюємо права "Читати" для всіх користувачів. У створеній папці організовуємо файли сайту. Для початку можна створити файл index.htm з певним реченням (наприклад "Вітаю на сайті!").

Заходимо у папку /etc/apache2/sites-available. Створюємо файл з іменем, що співпадає із назвою сайта (для зручності) та записуємо в ньому наступний зміст: 

<VirtualHost 192.168.0.254:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/sitelocal/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory '/var/www/sitelocal/'>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


Пояснення до змісту:
<VirtualHost 192.168.0.254:80> - ви вказуєте ip-адресу, за якою будете заходити на цей сайт з мережі. Порт 80 не міняєте.
DocumentRoot /var/sitelocal/  - вказуєте теку, в якій знаходяться файли сайту.
<Directory '/var/www/sitelocal/'>   - вказуєте теку, в якій знаходяться файли сайту.
Все інше набираєте без змін .

У теці /etc/apache2/sites-enabled створюємо символічне посилання:

ln -s /etc/apache2/sites-available/sitelocal sitelocal

Можна спробувати увімкнути ЧПУ модуль на web сервера:
a2enmod rewrite
Пов’язуємо назву сайту з ip-адресою. Для цього у файл /etc/host додаємо рядок:
192.168.0.254     sitelocal
Потрібно зазначити, що у мене сайт всеодно відкривається тільки за ip-адресою.
Перезавантажуємо Apache2:

/etc/init.d/apache2 reload