Я пытался следовать нескольким базовым руководствам, объясняющим, как настроить и запустить 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 указывает "путь к содержимому сайта"