Як налаштувати Apache (сайти доступні проти httpd.conf)


27

Я намагався дотримуватися кількох основних навчальних посібників, які пояснюють, як активувати Apache та працювати (на ubuntu, працює на Amazon). В основному я прийшов порожнім, тому що всі підручники говорили мені налаштувати httpd.conf (додати DocumentRoot тощо).

Зараз я натрапив на один підручник, який сказав мені додати конфігурації сайтів до доступних для сайтів каталогів (під / etc / apache), а потім посилатись на нього з увімкнених сайтів. Налаштування цього способу, здається, працює.

Але тепер я розгублений - як я повинен налаштувати Apache? Більшість навчальних посібників як і раніше кажуть, що я повинен використовувати httpd.conf. Яким я повинен користуватися? Яка різниця? Чому всі підручники "неправильні" (якщо вони є)?

Відповіді:


35

sites-availableМетод , як правило , вважається «Debian шлях»:

  • "main" конфігурація в /etc/apache2/apache2.conf
  • налаштування "user" /etc/apache2/httpd.conf
  • vhosts у /etc/apache2/sites-availableфайлах (по одному на файл, як правило)
    • ви можете їх пронумерувати, наприклад, 00-domain.com, 01-otherdomain.com
  • порти ( Listenдирективи) в/etc/apache2/ports.conf
  • мод в /etc/apache2/mods-available

Ви можете ними керувати за допомогою символьних посилань або за допомогою a2серії команд:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

В залежності від особистих уподобань, ви можете перезапустити Apache , використовуючи apachectl, /etc/init.d/apache2 (start|stop|reload|restart)абоservice apache2 (start|stop|reload|restart)

Наприклад, якщо ви використовували б httpd.confзамість vhost запис, це, наприклад, глобальне правило переадресації чи переписування. Інші ласощі - як правило, ви повинні залишити в apache2.confспокої, і переконайтеся, що ви встановили послідовну схему іменування vhosts в sites-availableкаталозі.


Чудовий підсумок! Набагато чіткіше і лаконічніше, ніж над тим, над яким я працював. +1.
Стівен у понеділок,

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

+1. Коли вам потрібно підтримувати ці конфігурації, перейдіть до "сайтів із ввімкненим" замість "сайтів, доступних", і перейдіть до них безпосередньо звідти. Таким чином, ви завжди зможете визначити та отримати доступ до конфігурацій сайту, що використовуються зараз.
Росс

9

Розташування та організація файлів конфігурації можна налаштувати і можуть змінюватися між основними випусками або між дистрибутивами.

У Apache Wiki є зручний посібник з іменами та місцями файлів конфігурації.

Оскільки конфігураційні файли можуть містити includeдирективи, частини конфігурації можна розділити на менші файли. Оскільки стандартний файл конфігурації Apache містить безліч коментарів і безліч стандартних елементів, має сенс відокремити частини, які ви, швидше за все, зміните.

Ім’я головного файлу конфігурації можна змінити під час компіляції, а в останніх випусках - змінити з httpd.confнаapache2.conf

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

Наприклад, я встановив Apache2 в системі на базі Ubuntu за допомогою apt-get install apache2- ось включені файли

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

Отже, зараз налаштовано кілька налаштувань конфігурації, які вас, мабуть, найбільше зацікавлять /etc/apache2/sites-available/default.

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


-2

Apache в Linux може бути встановлений двома типами. один - за допомогою apt-get та інший файл завантаження та витяг .... Таким чином, в процесі apt-get сайти подаються з папки / etc / apache2 / sites, оскільки кожен сайт, що подає зовнішній світ, налаштований у цій папці від .conf файли приклад 000-default.conf - це сайт за замовчуванням, увімкнено для показу роботи apache.

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

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

ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log комбіновано

Де як, *: 80 вказує "відкрити для світу через порт 80" DocumentRoot / var / www / html вказує "шлях вмісту сайту"


Це неправильно і вводить в оману. Ви створюєте свої файли на доступних сайтах, щоб такі інструменти (рекомендовані), як a2ensite, могли працювати. Зазвичай ви посилаєте ці конф-файли за допомогою a2ensite на сайти, що підтримуються. apt-get не має нічого спільного з налаштуванням ваших сайтів.
HörmannHH
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.