Apache linux где хранятся сайты

Обновлено: 04.07.2024

Установив, веб-сервер Apache и предоставив через него на всеобщее обозрение свой сайт, некоторые и не подозревают, каким мощным инструментом они владеют. С его помощью можно управлять сотнями сайтов с разными именами и уровнями доступа. Денежная стоимость и временные затраты на добавление каждого сайта минимальны.

Веб-сервер Apache, популярный благодаря своей прозрачности для программистов и администраторов и не в последнюю очередь благодаря бесплатности, реализован под все более-менее популярные операционные системы. Его настройки для всех ОС одинаковы, различаются только пути, где хранятся конфигурационные файлы. На одном сервере может быть запущено несколько экземпляров Apache, прослушивающих разные адреса и/или порты. Один экземпляр может обслуживать несколько сайтов (подробнее об этом ниже). Проект настолько популярен, что постоянно обрастает новой функциональностью. О степени популярности можно судить либо по статистике, что, на мой взгляд, довольно опрометчиво, либо по конкретным фактам. Фактов популярности Apache мы приведём два. Во-первых, его наличие в качестве веб-сервера по умолчанию в большинстве UNIX-подобных операционных систем. Во-вторых, такой гигант в области ИТ как компания Oracle приняла его в состав своего продукта Oracle Application Server 10g, где он играет одну из ключевых ролей.

  1. Разместить все сайты на одном сервере
  2. Сделать доступ к каждому сайту по отдельному URL
  3. Ограничить доступ к некоторым сайтам
  4. Сделать перенаправление нескольких имён на один сайт

Создаём два сайта (виртуальные хосты)

- Мы будем разделять журналы для каждого сайта, поэтому создадим соответствующие каталоги:

Все настройки не заданные для сайта явным образом в директиве VirtualHost, наследуются от глобальных настроек Apache, указанных выше в этом же файле.

Создаём ссылки с нескольких DNS адресов на один сайт

Это можно осуществить двумя способами: созданием синонимов, или перенаправлением всех обращений с другого сайта.

1) Синонимы задаются директивой ServerAlias, могут содержать маску, и разделяются пробелом. Вот несколько примеров создания синонимов:

Синоним - это DNS-имя. Имена могут быть абсолютно любыми, в том числе и из разных доменов, но все они должны разрешаться в IP-адреса, то есть их предварительно нужно зарегистрировать в DNS.

Можно перенаправлять не со всего сайта, а только с определённого каталога или даже документа:

При этом Apache воспринимает первый параметр директивы Redirect не как URL, а как набор символов, при совпадении с которым происходит перенаправление. Отсюда следует, что он НЕ проверяет наличие указанных каталогов и файлов, а ссылки /samag и /samag/ НЕ считает одинаковыми.

Перенаправление с помощью файла .htaccess выглядит так:

Полезная ссылка:

Ограничиваем доступ к сайтам

Теперь перейдём непосредственно к раздаче прав доступа. Существует два способа указания прав доступа к каталогу веб-сайта средствами Apache:

1) поместить в каталог файл .htaccess,

2) использовать директиву <Directory> в файле конфигурации.

В обоих случаях правила распространяются и на вложенные каталоги. Мы рассмотрим оба способа и изменим права доступа к двум каталогам сайта logos.

файл .htaccess

Какие параметры можно переписать в файлах .htaccess определяется директивой AllowOverride. Для разрешения переопределения всех деректив нужно добавить в конфигурацию сайта строку:

Перечислим преимущества использования файла .htaccess:

  1. при его изменении не нужно перезапускать Apache;
  2. при одинаковом уровне доступа к разным ресурсам можно пользоваться ссылками на один файл .htaccess;
  3. можно предоставить пользователю право редактирования этого файла, что удобно, если у нас сервер с множеством клиентских сайтов.

Есть и недостатки:

Пример

Предоставим права с помощью файлов .htaccess, нужно создать соответственно файл /var/www/html/logos/info1/.htaccess:

и файл /var/www/html/logos/info2/.htaccess:

директива <Directory>

Определяя настройки доступа к каталогам сайта с помощью директивы <Directory> в одном конфигурационном файле всего сайта, мы получим следующие преимущества:

  1. можно быть уверенным, что ничего не пропустим, если вдруг нужно изменить уровень доступа к какому-нибудь ресурсу;
  2. повышаем скорость реакции сервера на запросы, т.к. все настройки загружаются при старте Apache.

Ну а мириться придётся с тем, что для каждого каталога необходимо описывать права отдельно (помним, что для подкаталогов права наследуются), даже если они одинаковые. Правда, есть поддержка масок, например:

будет соответствовать именам каталогов в /www/ состоящим из трёх цифр, но это не всегда может облегчить ситуацию.

Пример

Оба варианта настройки равноправны и создают следующие ограничения:

Добавим в него пользователя chef:

В некоторых дистрибутивах команда может называться без цифры, т.е. htpasswd, находится она в пакете с утилитами Apache, в Debian это apache2-utils

Остальных пользователей добавляем аналогичным способом. Такие файлы создаём для каждой группы пользователей с одинаковыми правами доступа к ресурсу. Одни и те же группы можно использовать во всех сайтах.

Для удаления пользователя chef из списка, используем комманду:

Последние штрихи

Также нелишне будет настроить ротацию журналов с помощью logrotate.

Особенности директив Listen и NameVirtualHost

Директива Listen имеет больший приоритет чем, NameVirtualHost. Она говорит, откуда принимать запросы. В то время как последняя определяет, как обрабатывать полученный запрос. Это значит, что если указано значение

то Apache будет прослушивать порт 80 на всех IP адресах и директива

не ограничивает запросы, пришедшие на другие адреса, и они будут обрабатываться наравне с указанным адресом, а если указано значение

В Ubuntu веб-сервер Apache2 по умолчанию хранит файлы в корневом каталоге /var/www/html, который обычно расположен в одной файловой системе вместе с остальными компонентами операционной системы. Но в некоторых ситуациях лучше переместить этот каталог в другое место, например в отдельную смонтированную файловую систему.

При обслуживании нескольких веб-сайтов с помощью одного экземпляра Apache можно поместить каталог document root каждого сайта в отдельный том. Это позволяет масштабировать сервер в соответствии с потребностями конкретного сайта или клиента.

Требования

  • Предварительно настроенный сервер Ubuntu 16.04.
  • Пользователь с доступом к sudo (о настройке такого пользователя можно узнать здесь).
  • Установленный сервер Apache2 (инструкции по установке можно найти в специальном разделе этого мануала).
  • Новое место хранения для document root. Выберите новое местонахождение файлов сайта согласно вашим потребностям. Если вы хотите переместить корневой каталог на другое устройство хранения данных, выберите точку монтирования устройства.

В данном мануале показано, как переместить данные в блочное хранилище, смонтированное в /mnt/volume-nyc1-01. Это поможет вам переместить каталог данных в новое место независимо от того, какое хранилище вы используете.

1: Копирование файлов в новый каталог

Свежая установка Apache использует в качестве корневого каталога /var/www/html. Однако на старых установках может быть несколько каталогов document root в зависимости от количества виртуальных хостов.

Сначала нужно узнать местонахождение дополнительных корневых каталогов. Чтобы сфокусировать своё внимание только на активных сайтах, ищите каталоги только сайтов из /etc/apache2/sites-enabled. С помощью флага -R команда grep вернёт DocumentRoot и имя файла:

grep -R “DocumentRoot” /etc/apache2/sites-enabled

Вывод имеет примерно такой вид:

sites-enabled/000-default.conf DocumentRoot /var/www/html

Выяснив местонахождение корневых каталогов, можно скопировать их на новое устройство с помощью rsync. Флаг –a сохраняет привилегии и другие свойства каталога. Флаг –v предоставляет подробный вывод.

Примечание: Убедитесь, что в названии каталога нет конечной косой черты (которую система может добавить, если вы используете автодополнение). Если такой слеш есть, rsync будет сбрасывать содержимое каталога в точку монтирования, а не в каталог.

sudo rsync -av /var/www/html /mnt/volume-nyc1-01

2: Настройка Apache2

Apache2 использует глобальные и индивидуальные конфигурационные файлы.

Если вы работаете со старой установкой веб-сервера, вам нужно отредактировать все виртуальные хосты, полученные в выводе grep. В данном примере нужно откорректировать два виртуальных хоста: 000-default.conf и default-ssl.conf

Откройте файл 000-default. Conf:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Найдите директиву DocumentRoot и укажите в ней новое местонахождение корневого каталога.

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /mnt/volume-nyc1-01/html/ >
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Сохраните изменения и приступайте к настройке SSL. В свежей установке SSL ещё не настроен, но отредактировать стандартные настройки ssl-default.conf лучше сейчас, чтобы избежать возникновения ошибок в дальнейшем.

sudo nano /etc/apache2/sites-available/ssl-default.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01
. . .

Примечание: Если поддержка SSL не включена, файл ssl-default.conf находится только в /etc/apache2/sites-available. Если вы включили поддержку SSL с помощью a2ensite, в sites-available будет создана символьная ссылка на /etc/apache2/sites-enabled. В таком случае можно редактировать этот файл в любом из каталогов.

3: Перезапуск Apache

Откорректировав все настройки, проверьте синтаксис на наличие ошибок с помощью configtest:

sudo apachectl configtest

На свежей установке команда вернёт:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Если команда не сообщила об ошибках, можете перезапустить сервер.

sudo systemctl reload apache2

После перезапуска посетите сайты, чьи корневые каталоги вы переместили на новое устройство, и убедитесь, что они работают. После этого можно удалить оригинальный каталог.

Заключение

Теперь вы знаете, как перемещать корневой каталог Apache на новое устройство. Это очень полезный навык в управлении веб-сервером, позволяющий без труда разместить несколько сайтов на одном сервере или быстро перейти на новое устройство хранения данных.

Настраиваю VPS через ISPmanager (Debian 6 x86).

1. При создании пользователей они (одноимённые файлы-каталоги) помещаются в /var/www/:

Это нормально ? Так и должно быть ? Просто вот здесь пишут, что "/var — директория, хранящая различные логи, кеши файлов".

И вообще, понятие "пользователь" - это чисто ISPmanager'овская "выдумка" (связанная с "группировкой" сайтов по пользователям) или это элемент ОС ?

2. При создании доменов по умолчанию файлы сайта размещаются по такому пути (папка "www" в этом пути присутствует дважды):

Это нормальный путь ? Вроде как сайты обычно размещают в папке /home.
Где корректне всего хранить файлы сайтов ?
Конфигурация компьютера
Память: 8Гб
ОС: Linux x86_64

Вообще-то Веб сервера хранят свои сайты в /var. Там-же хранят свои рабочие файлы и другие серисы : ftp, ntpd и т.д. и т.п. В этой статейке не указан стандарт, в колтором всё это подробно расписано.

Так, что /var/www - это канонический путь.

-------
Поспешай не торопясь

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Конфигурация компьютера
Процессор: Intel(R) Core(TM) i5-4278U CPU @ 2.60GHz
Память: PC3-12800 2x4Gb
HDD: APPLE SSD SM0256F 250GB
Видеокарта: Intel(R) Iris 5100
Блок питания: MAGSafe 2 60W
Ноутбук/нетбук: MacBook Pro MGX82RS/A
ОС: OS X 10.10.1 Yosemite
Где угодно. Нужно соблюдать лишь два условия
1. web сервер имеет туда доступ
2. места достаточно
Обычная практика, поскольку нужно ведь давать ещё доступ для заливки содержимого, обычно по ftp, а ftp сервер настроить с chroot в домашнюю директорию проще всего.
И где в каноничном fhs-2.3 расписан /var/www ?
Если в убунте с клонами веб-сервера поставляются настроенными с документрутом в /var/www, это не значит, что это канон. По канону, вами же приведённому, /srv/apache2/www или /srv/www таки каноничнее .
Конфигурация компьютера
Память: 8Гб
ОС: Linux x86_64
Если в убунте с клонами веб-сервера поставляются настроенными с документрутом в /var/www »
Вот чем не пользуюсь, это точно. Вообще-то /var/www это место для исторически давно используется, ещё до появления Ubuntu, а так, да, по новому стандарту правилтнее в /srv/www

-------
Поспешай не торопясь

Конфигурация компьютера
Процессор: Intel(R) Core(TM) i5-4278U CPU @ 2.60GHz
Память: PC3-12800 2x4Gb
HDD: APPLE SSD SM0256F 250GB
Видеокарта: Intel(R) Iris 5100
Блок питания: MAGSafe 2 60W
Ноутбук/нетбук: MacBook Pro MGX82RS/A
ОС: OS X 10.10.1 Yosemite
исторически давно используется, ещё до появления Ubuntu »
В дебиане, да. И наверно в куче ещё дистров. Хотя я прекрасно помню и стандартные /usr/www и /usr/local/www
Конфигурация компьютера
Память: 8Гб
ОС: Linux x86_64
Ну. если смотреть предыдущий стандарт (2.2), то в нем не было srv, и расположение в /var было вполне логично, по аналогии с mail и т.п., хотя в нём прямо не говорилось где должны лежать фалы таких сервисов.

-------
Поспешай не торопясь

Конфигурация компьютера
Процессор: Intel(R) Core(TM) i5-4278U CPU @ 2.60GHz
Память: PC3-12800 2x4Gb
HDD: APPLE SSD SM0256F 250GB
Видеокарта: Intel(R) Iris 5100
Блок питания: MAGSafe 2 60W
Ноутбук/нетбук: MacBook Pro MGX82RS/A
ОС: OS X 10.10.1 Yosemite
Текущий, 2.3, был издан в 2004 году. 9 лет назад (29 января исполнится круглых 10 лет).
Конфигурация компьютера
Память: 8Гб
ОС: Linux x86_64

-------
Поспешай не торопясь

Переношу сайт на другой сервер. На старом файлы сайтов хранятся в /var/www/user1/data/www/site1
На новом сервере есть возможность изменить эти пути. Согласно спецификации FHS (вики), следует использовать директорию:
/srv/www/

Даже если остановиться на /srv/www/, то какими здесь должны быть поддиректории:

/srv/www/user1/data/www/сайт1
/srv/www/user1/www/сайт1
/srv/www/user1/сайт1
/srv/www/сайт1
?

Насколько я понимаю, если у каждого пользователя должны быть свои php-настройки, то последние 2 варианта отпадают.

Обзор конфигурации Apache в Ubuntu

В статье представлен обзор конфигурации web сервера Apache в Ubuntu server при стандартном варианте инсталляции LAMP в Ubuntu. Приведена логика и структура организации конфигурационных файлов веб сервера. Описаны назначения основных конфигов сервера. Даны базовые Linux Ubuntu команды для манипуляции конфигурацией, настройки и управления веб сервером Apache. Рассмотрен сайт по умолчанию, который создается в процессе установки Apache. Статья вам будет полезна при настройке и администрировании своего LAMP сервера.

Как добавить поддержку PHP как обработчика сценариев в Apache на Ubuntu или Windows детально описано в статье Установка PHP7 на Windows в разделе Настройка Apache2.4 для работы с PHP .

Apache Default WEB Page

В процессе выполнения стандартной инсталляции web сервера Apache в Ubuntu server создается тестовый сайт, который служит для проверки работоспособности веб сервера после его установки. Этот сайт, по умолчанию, сконфигурирован так, что разрешает обращения из браузера только к файлам и каталогам внутри /var/www директории Ubuntu server. Если, по завершению инсталляции Apache, вы откроете в браузере веб страницу по адресу IP вашего web сервера, то увидите стартовую страницу сервера - Apache2 Ubuntu Default Page. Это будет, в первую очередь, говорить о том, что Apache удачно установился и работает. Эта страница физически располагается на сервере в файле /var/www/html/index.html и за ее настройку и вывод в браузере отвечает конфиг виртуального хоста по умолчанию (/etc/apache2/sites-available/000-default.conf), который определяет виртуальный хост(сайт) для каталога /var/www/html и создается в ходе инсталляции сервера Apache. Соответственно, если вы разместите ваши файлы в этой папке, то они будут обрабатываться web сервером. Также на этой Default Page в секции Configuration Overview вы увидите схематическое представление структуры конфигурационных файлов сервера. Здесь нужно понимать, что структура, названия и расположения конфигов Apache в Ubuntu отличаются от общепринятой схемы, что сделано для удобства управления сервером. Но тут есть один нюанс, который заключается в том, что если вы ранее не были знакомы с организацией каталогов в домашней директории Apache на Ubuntu, то эта схема может вас только запутать, т.к. в ней представлены не все папки, а только каталоги, в которых располагаются символьные ссылки на активированные файлы конфигурации. Поэтому, для более правильного понимания, смотрите полную схему каталогов и фалов домашней директории web сервера Apache расположенную ниже в этой статье. Из ценного в секции веб страницы Apache - это ссылки на man'ы Debian для команд a2enmod, a2dismod, a2ensite, a2dissite, a2enconf, a2disconf, которые используется для активации и деактивации тех или иных видов файлов конфигурации и будут детально описаны ниже. Так же здесь сказано, что для передачи команд web серверу ( started/stopped etc.) нужно обращаться к /etc/init.d/apache2 или к apache2ctl, что так же является особенностью сервера в Ubuntu. На сервере Ubuntu в файле /usr/share/doc/apache2/README.Debian.gz вы сможете найти полную документацию по Apache.

Домашний каталог Apache в Ubuntu

По умолчанию, домашний каталог web сервера Apache в Ubuntu находиться по /etc/apache2/ пути в файловой системе. В этом каталоге и его подкаталогах располагаются все конфигурационные файлы Apache. Изменить значение пути домашней директории web сервера можно директивой ServerRoot "/etc/apache2" в главном конфиге apache2.conf. Там, по умолчанию, директива ServerRoot закомментирована, что равносильно ее значению как "/etc/apache2" ( завершающего слеша не должно быть в этой директиве!). Значение пути домашней директории Apache ( ServerRoot ) необходимо серверу, что бы он знал, в каком месте файловой системы ему следует искать свои конфигурационный файлы. Так же значение ServerRoot может подставляться сервером в некоторых директивах, ожидающих в качестве аргумента путь в файловой системе Ubuntu. Поэтому, в таких случаях, если путь указать без начального слеша, то Apache воспримет это как относительный путь по отношению к своей домашней директории. Так, например, если указать директиву AuthUserFile .htpasswd , то в таком варианте Apache будет интерпретировать указанный путь как относительный и превратит его в /etc/apache2/.htpasswd, подставив спереди значение пути своей домашней директории.

Структура домашней директории Apache в Ubuntu

В процессе стандартной установки WEB сервера Apache в Ubuntu создается следующая структура файлов и каталогов домашней директории веб сервера:

Приведенные примеры представлены из OS Ubuntu server 16.04 LTS, однако тоже самое будет и в других версиях и дистрибутивах Ubuntu как в сервером варианте, так и в desktop варианте.

Логика организации конфигурации Apache

Как уже было сказано выше, в Ubuntu используется отличная от оригинальной организационная структура конфигурационных файлов и директорий для веб сервера Apache.

Во-первых, в Ubuntu, конфигурация Apache разбита на множество разных конфигов по их функциональному назначению. Например, директивы, задающие порт для сервера, вынесены в отдельный файл ports.conf. Директивы, ответственные за те или иные параметры безопасности сервера, вынесены в файл security.conf. Тем самым, директивы как бы сгруппированы по своему смыслу в отдельные конфигурационные файлы. Это достаточно логично и удобно при чтении, правке, активации и деактивации конфигов. При таком подходе каждый, отдельно взятый файл, становиться меньше и является узкоспециализированной частью конфигурации. Однако, нужно понимать, что такое дробление сделано исключительно для удобства и автоматизации настройки и технически, если вы захотите, вы можете записать все директивы и настройки в один файл, просто работать с таким файлом будет не так удобно.

Во-вторых: центром всей конфигурации выступает главный конфиг Apache веб сервера - apache2.conf файл. Именно этот файл в первую очередь ищет и читает web сервер Apache при старте или перезагрузке. А уже в этом файле при помощи директив Include, в месте их указания, выполняется подключение и загрузка всех остальных заданных конфигов. Таким образом, все конфигурационные файлы объединяются в единую конфигурацию web сервера и происходит это, когда Apache читает файлы по порядку их подключения, начиная с главного конфига. Из этого следует важное замечание - порядок следования директив в конфигурации Apache и, соответственно, порядок подключения файлов конфигов имеет значение, так как директивы, прочитанные сервером позднее могут переопределять директивы прочитанные им ранее. Об этом нужно помнить при настройке сервера.

В-третьих: если вы посмотрите на структуру каталогов домашней директории Apache, то увидите три пары директорий с названиями вида: префикс_каталога-available/enabled. Такая логическая структура призвана для распределения ваших конфигов на три группы, исходя из префикса названия каталога, где conf-* это каталоги для ваши прочих конфигов, mods-* это каталоги для конфигов модулей Apache и sites-* это каталоги для конфигов ваших виртуальных хостов. Вторая часть имени этих каталогов -available/-enabled логически указывает на доступные вообще и только активные в настоящий момент момент конфиги. Так в директориях *-available хранятся все доступные для использования файлы конфигурации, а уже в директориях вида *-enabled расположены символьные ссылки (ярлыки) только на те конфиги из *-available директории, которые должны быть прочитаны web сервером при загрузке конфигурации. Apache читает только каталоги вида *-enabled, поэтому применяться только те конфиги, на которые в этих каталогах есть ссылки. Такой подход дает еще дополнительный уровень удобства тем, что позволяет вам хранить все ваши конфиги в каталогах домашней директории сервера, а задействовать только необходимые в текущий монет.

В-четвертых: директивы конфигурации web сервера Apache имеют контекст (Context ), в котором они действуют. Понятие контекст директивы указывает на то, где, на каком уровне и в каком конфиге данная директива может использоваться. Одна и та же директива может быть разрешена к использованию как только в одном виде контекста, так и в нескольких видах контекста. Если директива будет использована/записана в недопустимом для нее виде контекста, то будет ошибка web сервера Apache при загрузке конфигурации, которая приведет к его остановке. Поэтому, при написании ваших директив, всегда обращайте внимание на контекст их применения, который всегда указывается в документации к директиве на сайте Apache.

В-пятых: нужно понимать, что Apache выполняет чтение и применение всех активных конфигов только при старте или перезагрузке. После старта Apache уже более не перечитывает конфигурацию. Исключением служит файл .htaccess, который является локальным файлом уровня каталога сайта и перечитывается при каждом обращении к данному каталогу сайта. Соответственно, если вы сделали изменения параметров конфигурации вне .htaccess файла, то для вступления их в силу необходимо перезагрузить web сервер Apache.

Виды контекста директив:

  • server config - глобальный уровень директивы для применения в файлах общей конфигурации сервера вне<VirtualHost> и вне<Directory> контейнеров и вне файла .htaccess;
  • virtual host - уровень виртуального хоста для применения директивы в <VirtualHost> контейнере;
  • directory - уровень каталога, директива должна использоваться внутри контейнеров <Location>, <Files>, <If>, <Proxy>;
  • .htaccess - уровень локального каталога сайта, директива может применяться в файле .htaccess.

Команды управления конфигурацией

Для удобства и автоматизации управления конфигурацией Apache в Ubuntu имеются специальные команды, воспользовавшись которыми вы можете включить или исключить из конфигурации сервера те или иные конфигурационные файлы, запустить и перезагрузить сервер, просмотреть и изменить параметры переменных окружения Apache и многое другое.

Команды включения/выключения конфигурации

Для активации и деактивации тех или иных конфигов в Ubuntu предоставляются команды помощники созвучные с available/enabled и префиксом каталога. Например, команда a2enconf, которую можно расшифровать как apache2-enable-conf, выполняет активацию указанного в ее аргументе конфигурационного файла из conf-available каталога путем создания на него символьной ссылки в каталоге conf-enabled. Команда a2disconf выполняет обратное действие, т.е. удаляет эту ссылку. Подобная логика применима и к остальным командам: a2enconf/a2disconf , a2enmod/a2dismod , a2ensite/a2dissite . Но вы так же можете и вручную создать/удалить символьные ссылки на нужные вам конфиги в директориях вида *-enabled.

Внимание: для вступления измений конфигов в силу нужно выполнить перезагрузку конфигурации WEB сервера Apache.

a2enconf/a2disconf

Для включения или выключения нужного конфига из каталога conf-available в конфигурацию сервера используйте команды: a2enconf/a2disconf

Включить конфиг:

Выключить конфиг:

a2enmod/a2dismod

Для активации установленного модуля Apache из каталога mods-available и деактивации его используйте команды: a2enmod/a2dismod

Включить модуль Apache

Выключить модуль Apache

a2ensite/a2dissite

Для активации конфигурации виртуального хоста из каталога sites-available и деактивации его используйте команды: a2ensite/a2dissite

Включить виртуальный хост в Apache

Выключить виртуальный хост в Apache

Команды управления Apache

или

или

где:

Внимание: команды apache2ctl и apache2 имеют разный синтаксис аргументов, однако утилита apache2ctl способна обрабатывать как свои собственные команды, так и команды предназначенные для apache2 и поэтому является более универсальной.

Примеры команд управления Apache только для утилиты apache2ctl

Замечание: на продуктивном сервере нужно стремиться выполнять graceful варианты перезапуска и остановки при которых выполняется ожидание завершения текущих запросов клиентов, что является более корректным как для пользователей, так и для целостности данных, обрабатываемых в текущий момент.

Системные команды для Apache

В Ubuntu для Apache, так же как и для других служб системы, доступны команды вида:

Примеры общих системных команд управления Apache web сервером:

Мягкие варианты перезапуска ожидают завершения запросов текущих клиентов и предпочтительны к использованию на продуктивном сервере. Но, иногда бывает ситуации, когда, при настройке и тестировании вами web сервера, после изменения вами конфигов и мягком перезапуске сервера вы видите, что для вашего клиента, с которого вы ведете тестирование, изменения не вступили в силу, то выполните переподключение к серверу на клиенте. Если это не помогло, то выполняйте уже обычный restart сервера.

В заключении обзора конфигурации WEB сервера Apache в Ubuntu хочется отметить, что все описанные каталоги, логика и команды будут применимы как для серверной версии, так и для десктопной версии Ubuntu. Поэтому, если вы уже работает в Ubuntu Desktop и настраиваете свой разработческий LAMP сервер, то просто откройте терминал и выполняйте в нем вышеописанные команды.

Скринкаст: Обзор конфигурации Apache в Ubuntu

В скринкасте представлен последовательный обзор конфигурации web сервера Apache в Ubuntu при стандартной установке LAMP в Ubuntu server 16.04. Описана стартовая страница web сервера, структура домашней директории Apache, назначение каталогов и конфигурационных файлов. Приведены команды для управления и настройки конфигурации веб сервера. Описаны логика, структура, особенности и подход в конфигурации Apache. Дано понятие контекста действия директив Apache. Приведены ссылки на необходимую документацию. Скринкаст поможет вам разобраться в настройке web сервера Apache2 в операционной системе Ubuntu для своего разработческого или продуктивного веб сервера, как на виртуальной машине, так и на выделенном VDS или на своем Ubuntu Desktop персональном компьютере.

Читайте также: