Налаштування віртуальних хостів apache в centos 7

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі






- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

Пропозиція від 8host.com

Налаштування віртуальних хостів apache в centos 7

Гнучкий і продуктивний Apache на сьогоднішній день є найпопулярнішим веб-сервером, він обслуговує більше половини активних сайтів.

Функції Apache розподілені між його окремими компонентами, які можна налаштовувати індивідуально. Основним таким компонентом, який містить налаштування для окремого сайту, є віртуальний хост. Віртуальні хости (англ. Virtual host) дозволяє розміщувати декілька доменів або інтерфейсів на одному віртуальному виділеному сервері.

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

У цьому посібнику розповідається, як налаштувати віртуальні хости на виділеному сервері CentOS 7, що дозволить обслуговувати різний контент в залежності від запитуваної домену.

вимоги

Також потрібно попередньо встановити Apache. Для цього використовуйте менеджер пакетів yum, який встановить сервер зі стандартних репозиторіїв CentOS.

sudo yum -y install httpd

Потім запустіть Apache як сервіс, щоб він автоматично запускався після перезавантаження.

sudo systemctl enable httpd.service

Після цього підключіться до сервера по SSH що не-рутовий користувач з привілеями sudo.

Примітка. У керівництві використовуються умовні домени example.com і example2.com; не забудьте замінити їх своїм доменним ім'ям.

Якщо у вас немає доменного імені, в кінці керівництва показано, як протестувати настройку з фіктивними значеннями.

1: Створення структури каталогів

Для початку потрібно створити структуру каталогів, в якій будуть зберігатися дані сайту.

Каталог document root (каталог, в якому Apache шукає контент) за замовчуванням знаходиться в / var / www; в ньому потрібно створити окремий каталог для кожного віртуального хоста. У кожному такому каталозі буде розміщений каталог public_html, в якому і будуть знаходитися потрібні файли. Такий підхід робить хостинг більш гнучким.

Необхідні каталоги можна створити за допомогою команди mkdir (прапор -p дозволяє створювати каталог з вкладеним в нього каталогом):

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/example2.com/public_html

Примітка. Не забудьте замінити умовні домени своїми даними.

Отже, структура каталогів готова, але всі вони належать користувачеві root. Щоб не-рутовий користувач міг вносити зміни в файли веб-каталогу, потрібно змінити права на ці файли за допомогою chown:

sudo chown -R $ USER: $ USER /var/www/example.com/public_html
sudo chown -R $ USER: $ USER /var/www/example2.com/public_html

Змінна $ USER прийме ім'я поточного користувача. Після цього каталоги public_html, що містять контент сайтів, будуть належати активного користувача.

Також потрібно трохи змінити привілеї, щоб відкрити веб-каталог і весь його вміст для читання, в іншому випадку сторінки не будуть відображатися коректно.

sudo chmod -R 755 / var / www

Тепер все права встановлені вірно; можна приступати до створення контенту в спеціально відведених каталогах.







3: Створення демо-сторінок для віртуальних хостів

Створіть тестовий контент; оскільки це пробна настройка хостів, сторінки будуть дуже простими. Просто створіть сторінки index.html для кожного сайту.

У цьому файлі створіть простий HTML-документ, який вказує, до якого сайту підключена сторінка. В даному випадку цей файл виглядає так:



Welcome to Example.com!




Збережіть і закрийте файл.

Потім можна скопіювати цей файл і використовувати його як шаблон для другого домену:

cp /var/www/example.com/public_html/index.html /var/www/example2.com/public_html/index.html

Відкрийте скопійований файл і внесіть відповідні дані:

nano /var/www/example2.com/public_html/index.html


Welcome to Example2.com!




Збережіть і закрийте файл. Тепер тестові сторінки готові.

4: Створення файлів віртуальних хостів

Файли віртуальних хостів задають настройки окремих сайтів і допомагають Apache коректно відповідати на запити.

Спочатку потрібно створити окремі каталоги для зберігання віртуальних хостів і включення сайтів. Каталог sites-available повинен містити файли віртуальних хостів, а каталог sites-enabled - символічні посилання на віртуальні хости, які потрібно включити. Для створення цих каталогів введіть:

sudo mkdir / etc / httpd / sites-available
sudo mkdir / etc / httpd / sites-enabled

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

Веб-сервер Apache повинен шукати віртуальні хости в каталозі sites-enabled. Для цього потрібно відредагувати головний конфігураційний файл Apache і оголосити додатковий каталог конфігураційних файлів.

sudo nano /etc/httpd/conf/httpd.conf

В кінець каталогу додайте рядок:

Збережіть і закрийте файл.

sudo nano /etc/httpd/sites-available/example.com.conf

Примітка. Згідно заданим конфігурацій, все конфігураційні файли повинні закінчуватися на .conf.

Спочатку створіть пару тегів, які оголошують цей текст віртуальним хостом, який слухає порт 80 (стандартний HTTP-порт).


Потім задайте ім'я сервера (в даному випадку це www.example.com). Директива ServerAlias ​​дозволяє вказувати додаткові імена сервера; використовуйте її, щоб запити www.example.com і example.com повертали однаковий контент.


ServerName www.example.com
ServerAlias ​​example.com

На завершення потрібно задати root-каталог для загальнодоступних веб-документів, а також місцезнаходження логів помилок і запитів для цього конкретного сайту:


ServerName www.example.com
ServerAlias ​​example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/requests.log combined

Збережіть файл і закрийте його.

Скопіюйте щойно створений файл і використовуйте його як шаблон для віртуального хоста другого сайту, відредагувавши відповідні дані.

sudo cp /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-available/example2.com.conf

sudo nano /etc/httpd/sites-available/example2.com.conf

Тепер залишилося відредагувати дані, щоб файл міг обслуговувати другий домен. В результаті другий файл віртуального хоста має такий вигляд:


ServerName www.example2.com
DocumentRoot /var/www/example2.com/public_html
ServerAlias ​​example2.com
ErrorLog /var/www/example2.com/error.log
CustomLog /var/www/example2.com/requests.log combined

Збережіть і закрийте файл.

5: Включення віртуальних хостів

Створивши файли віртуальних хостів, потрібно включити їх. Для цього створіть символічну посилання для кожного хоста в каталозі sites-enabled:

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
sudo ln -s /etc/httpd/sites-available/example2.com.conf /etc/httpd/sites-enabled/example2.com.conf

Після цього перезапустіть Apache, щоб ці зміни вступили в силу.

sudo apachectl restart

6: Налаштування локальних хостів (опціонально)

Якщо у вас немає доменного імені, і замість справжнього ви використовували умовний домен, ви можете протестувати настройки, тимчасово відредагувавши файл hosts на локальному комп'ютері. він буде перехоплювати запити на налаштовані раніше домени і направляти їх на VPS (тобто, виконувати роботу DNS). Але цей метод працює тільки на локальній машині і підходить тільки для тестування.

Примітка. Переконайтеся, що ви перейшли на локальну машину. Для виконання даного розділу потрібні облікові дані адміністратора.

У системах Mac або Linux відредагуйте файл hosts з привілеями адміністратора.

sudo nano / etc / hosts

Примітка. Користувачі Windows можуть знайти необхідні інструкції за цим посиланням.

127.0.0.1 localhost
127.0.1.1 guest-desktop
server_ip_address example.com
server_ip_address example2.com

7: Тестування віртуальних хостів

Щоб протестувати налаштування, просто відкрийте домени в веб-браузері:

В даному випадку на екрані з'явиться повідомлення:

Success! The example.com virtual host is working!

Примітка. Звичайно, те, що з'явиться на екрані, залежить від змісту файлу, створеного в розділі 3.

Перевірте роботу всіх віртуальних хостів.

Якщо файл hosts на локальному комп'ютері був змінений, після тестування видаліть внесені в нього рядки, щоб не засмічувати файл непотрібними записами.

висновок

Тепер сервер CentOS 7 може підтримувати кілька сайтів на окремих доменах. В цілому, кількість хостів, яке можна розмістити на одному сервері, залежить тільки від ресурсів сервера; в разі потреби просто повторіть весь вищеописаний процес, щоб додати на сервер новий віртуальний хост.

Добрий день.
Роблю все по Вашій інструкції, але на останньому кроці при перезавантаженні отримую:

»
apachectl: Configuration syntax error, will not run «restart»:
Syntax error on line 258 of /etc/httpd/conf/httpd.conf:
Invalid command 'IncludeOptional', perhaps misspelled or defined by a module not included in the server configuration
«







Схожі статті