Как настроить Apache (sites-available против httpd.conf)

Как настроить Apache (sites-available против httpd.conf)

Я пытался следовать нескольким базовым руководствам, объясняющим, как настроить и запустить Apache (на Ubuntu, запущенном на Amazon). В основном я ничего не понял, потому что все руководства говорили мне о настройке httpd.conf (для добавления DocumentRoot и т. д.).

Я сейчас наткнулся на один учебник, в котором мне сказали добавить конфигурации сайта в каталог sites-available (в /etc/apache), а затем сделать на него символическую ссылку из sites-enabled. Кажется, такая настройка работает.

Но теперь я в замешательстве - как мне настроить Apache? Большинство руководств по-прежнему говорят, что я должен использовать httpd.conf. Какой из них мне следует использовать? В чем разница? Почему все руководства "неправильные" (если они есть)?

решение1

Этот sites-availableметод обычно называют «способом Debian»:

  • "главная" конфигурация в/etc/apache2/apache2.conf
  • Конфигурация "пользователя" в/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.

решение2

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

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.

решение3

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

таким образом, создав любой файл .conf в sites-enabled и направив его к расположению контента... таким образом сайт обслуживается.

Итак, чтобы добавить новый статический сайт, необходимо создать новый файл .conf в папке sites-enabled с любым именем example 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 указывает "путь к содержимому сайта"

Связанный контент