Установка веб-сервера Apache в Ubuntu 20.04 [Краткое руководство]
![Установка веб-сервера Apache в Ubuntu 20.04 [Краткое руководство]](https://www.digitalocean.com/_next/static/media/intro-to-cloud.d49bc5f7.jpeg)
HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он имеет множество мощных функций, включая динамически загружаемые модули, надежную поддержку различных медиа-форматов и интеграцию с другим популярным программным обеспечением.
В этом обучающем руководстве мы расскажем, как установить веб-сервер Apache на сервере Ubuntu 20.04. Более подробную версию этого обучающего руководства можно найти в документе Установка веб-сервера Apache в Ubuntu 20.04.
Предварительные требования
Для прохождения этого обучающего модуля вам потребуется следующее:
- Один сервер Ubuntu 20.04 и обычный пользователь без прав root с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр для вашего сервера, следуя указаниям руководства Начальная настройка сервера Ubuntu 20.04.
Создав учетную запись, войдите в систему как пользователь без прав root.
Шаг 1 — Установка Apache
Apache доступен в используемых по умолчанию репозиториях программного обеспечения Ubuntu, и вы можете использовать для его установки стандартные средства управления пакетами.
Обновите локальный индекс пакетов:
Установите пакет apache2 :
Шаг 2 — Настройка брандмауэра
Проверьте доступные профили приложений ufw :
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
Мы активируем профиль с наибольшими ограничениями, который будет разрешать заданный трафик, а именно трафик на порту 80 (обычный веб-трафик без шифрования):
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
Шаг 3 — Проверка веб-сервера
Используйте команду systemd init system, чтобы проверить работу службы:
Outputapache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2020-04-28 23:06:40 UTC; 56s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 13785 (apache2) Tasks: 55 (limit: 1137) Memory: 5.3M CGroup: /system.slice/apache2.service ├─13785 /usr/sbin/apache2 -k start ├─13787 /usr/sbin/apache2 -k start └─13788 /usr/sbin/apache2 -k start
Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес:
http://your_server_ip
Вы должны получить веб-страницу Ubuntu 20.04 Apache по умолчанию:

Шаг 4 — Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен your_domain, но вы должны заменить это имя собственным доменным именем. Дополнительную информацию о настройке доменного имени с помощью платформы DigitalOcean можно найти в нашей статье Введение в DigitalOcean DNS.
Создайте каталог для your_domain :
sudo mkdir /var/www/your_domain
Назначьте владельца каталога:
Разрешения корневых каталогов веб-сервера должны быть правильными, если вы не изменяли значение unmask . Тем не менее вы можете проверить это с помощью следующей команды:
Создайте в качестве примера страницу index.html , используя nano или свой любимый редактор:
Добавьте в страницу следующий образец кода HTML:
/var/www/your_domain/index.html
html> head> title>Welcome to Your_domain!title> head> body> h1>Success! The your_domain virtual host is working!h1> body> html>
Сохраните файл и закройте его после завершения.
Создайте новый файл виртуального хоста в /etc/apache2/sites-available/ your_domain .conf :
Вставьте следующий блок конфигурации, обновленный с учетом новых имен каталога и домена:
/etc/apache2/sites-available/your_domain.conf
VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias your_domain DocumentRoot /var/www/your_domain ErrorLog $/error.log CustomLog $/access.log combined VirtualHost>
Сохраните файл и закройте его после завершения.
Активируйте файл с помощью команды a2ensite :
Отключите сайт по умолчанию, определеный в 000-default.conf :
Проверьте наличие ошибок конфигурации:
Вы должны получить следующий результат:
OutputSyntax OK
Перезапустие Apache для внесения изменений:
Теперь Apache должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http:// your_domain , после чего должны получить примерно следующее:

Заключение
Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.
Если вы хотите развернуть более сложный набор обслуживания приложений, ознакомьтесь со статьей Настройка стека LAMP в Ubuntu 20.04.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Установка веб-сервера Apache в Ubuntu 20.04

HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он имеет множество мощных функций, включая динамически загружаемые модули, надежную поддержку различных медиаформатов и интеграцию с другим популярным программным обеспечением.
В этом обучающем руководстве мы расскажем, как установить веб-сервер Apache на сервере Ubuntu 20.04.
Предварительные требования
Прежде чем начать прохождение настоящего обучающего модуля, необходимо настроить на сервере обычного пользователя без прав root с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр для вашего сервера, следуя указаниям руководства Начальная настройка сервера Ubuntu 20.04.
Создав учетную запись, войдите в систему как пользователь без прав root.
Шаг 1 — Установка Apache
Apache доступен в репозиториях программного обеспечения Ubuntu по умолчанию, и поэтому его можно установить с помощью стандартных инструментов управления пакетами.
Для начала выгрузим указатель локальных пакетов, чтобы отразить последние изменения на предыдущих уровнях:
Затем установим пакет apache2 :
После подтверждения установки apt выполнит установку Apache и всех требуемых зависимостей.
Шаг 2 — Настройка брандмауэра
Прежде чем тестировать Apache, необходимо изменить настройки брандмауэра, чтобы разрешить доступ к веб-портам по умолчанию. Если вы выполнили предварительные указания , у вас должен быть установлен брандмауэр UFW, настроенный для ограничения доступа к вашему серверу.
Во время установки Apache регистрируется в UFW, предоставляя несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.
Выведите список профилей приложений ufw , введя следующую команду:
Вы увидите список профилей приложений:
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
Как показал вывод, есть три профиля, доступных для Apache:
- Apache: этот профиль открывает только порт 80 (нормальный веб-трафик без шифрования)
- Apache Full: этот профиль открывает порт 80 (нормальный веб-трафик без шифрования) и порт 443 (трафик с шифрованием TLS/SSL)
- Apache Secure: этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL)
Рекомендуется применять самый ограничивающий профиль, который будет разрешать заданный трафик. Поскольку в этом модуле мы еще не настроили SSL для нашего сервера, нам нужно будет только разрешить трафик на порту 80.
Для проверки изменений введите:
В выводе будет представлен список разрешенного трафика HTTP:
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
Как показал вывод, профиль был активирован для доступа к веб-серверу Apache.
Шаг 3 — Проверка веб-сервера
В конце процесса установки Ubuntu 20.04 запускает Apache. Веб-сервер уже должен быть запущен и работать.
Используйте команду инициализации systemd , чтобы проверить работу службы:
Output● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 29435 (apache2) Tasks: 55 (limit: 1137) Memory: 8.0M CGroup: /system.slice/apache2.service ├─29435 /usr/sbin/apache2 -k start ├─29437 /usr/sbin/apache2 -k start └─29438 /usr/sbin/apache2 -k start
Вывод подтвердил, что служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.
Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес: Если вы не знаете IP-адрес вашего сервера, есть несколько способов узнать его с помощью командной строки.
Попробуйте ввести в командной строке сервера следующую команду:
Вы получите несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в браузере, чтобы убедиться в их работоспособности.
Еще один вариант — использовать инструмент Icanhazip, который должен выдать вам ваш публичный IP-адрес, видимый в другом расположении в Интернете:
Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:
http://your_server_ip
Вы увидите веб-страницу Ubuntu 20.04 Apache по умолчанию:

Эта страница показывает, что Apache работает корректно. Также на ней содержится информация о важных файлах Apache и расположении каталогов.
Шаг 4 — Управление процессом Apache
Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления, используя systemctl .
Чтобы остановить веб-сервер, введите:
Чтобы запустить остановленный веб-сервер, введите:
Чтобы остановить и снова запустить службу, введите:
Если вы просто вносите изменения в конфигурацию, во многих случаях Apache может перезагружаться без отключения соединений. Для этого нужно использовать следующую команду:
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:
Чтобы перезагрузить службу для запуска во время загрузки, введите:
Теперь Apache должен запуститься автоматически при следующей загрузке сервера.
Шаг 5 — Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен your_domain, но вы должны заменить это имя собственным доменным именем. О том, как настроить доменное имя с помощью DigitalOcean, можно узнать из нашей сетевой документации.
В Apache в Ubuntu 20.04 по умолчанию включен один серверный блок, настроенный на обслуживание документов из директории /var/www/html . Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html мы создадим в /var/www структуру директорий для нашего сайта your_domain, оставив /var/www/html как директорию по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.
Создайте следующую директорию для your_domain:
Затем назначьте владение директорией с помощью переменной среды $USER :
Разрешения корневых директорий веб-сервера должны быть правильными, если вы не изменяли значение umask, которое устанавливает разрешения файла по умолчанию. Чтобы убедиться, что разрешения корректны, позволить владельцу читать, писать и запускать файлы, а группам и другим пользователям разрешить только читать и запускать файлы, вы можете ввести следующую команду:
Затем создайте в качестве примера страницу index.html , используя nano или свой любимый редактор:
Добавьте в страницу следующий образец кода HTML:
/var/www/your_domain/index.html
html> head> title>Welcome to Your_domain!title> head> body> h1>Success! The your_domain virtual host is working!h1> body> html>
Сохраните файл и закройте его после завершения.
Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию, расположенного в /etc/apache2/sites-available/000-default.conf , мы создадим новый файл в /etc/apache2/sites-available/ your_domain .conf :
Введите следующий блок конфигурации, который похож на заданный по умолчанию, но обновлен с учетом новой директории и доменного имени:
/etc/apache2/sites-available/your_domain.conf
VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog $/error.log CustomLog $/access.log combined VirtualHost>
Обратите внимание, что мы изменили DocumentRoot на новую директорию, а ServerAdmin — на адрес электронной почты, доступный администратору сайта your_domain. Также мы добавили две директивы: директиву ServerName , которая устанавливает базовый домен и должна соответствовать определению виртуального хоста, и директиву ServerAlias , которая задает дополнительные имена, которые должны давать совпадение, как если бы они были базовыми именами.
Сохраните файл и закройте его после завершения.
Активируем файл с помощью инструмента a2ensite :
Отключите сайт по умолчанию, определеный в 000-default.conf :
Затем проверим ошибки конфигурации:
Вы должны получить следующий результат:
OutputSyntax OK
Перезапустие Apache для внесения изменений:
Теперь Apache должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com , после чего должны увидеть примерно следующее:

Шаг 6 — Знакомство с важными файлами и директориями Apache
Теперь вы научились управлять службой Apache, и настало время познакомиться с несколькими важными каталогами и файлами.
Контент
- /var/www/html: веб-контент, в состав которого по умолчанию входит только показанная ранее страница Apache по умолчанию, выводится из каталога /var/www/html . Это можно изменить путем изменения файлов конфигурации Apache.
Конфигурация сервера
- /etc/apache2 : каталог конфигурации Apache. Здесь хранятся все файлы конфигурации Apache.
- /etc/apache2/apache2conf : главный файл конфигурации Apache. Его можно изменить для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
- /etc/apache2/ports.conf : этот файл задает порты, которые будет прослушивать Apache. По умолчанию Apache прослушивает порта 80, а если активирован модуль с функциями SSL, он также прослушивает порт 443.
- /etc/apache2/sites-available/ : каталог, где можно хранить виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации из этого каталога, если они не будут связаны с каталогом sites-enabled . Обычно все изменения конфигурации серверных блоков выполняются в этом каталоге, а затем активируются посредством ссылки на другой каталог с помощью команды a2ensite .
- /etc/apache2/sites-enabled/ : каталог, где хранятся активные виртуальные хосты для каждого сайта. Обычно они создаются посредством создания ссылок на файлы конфигурации из каталога sites-available с помощью команды a2ensite . Apache считывает файлы конфигурации и ссылки из этого каталога при запуске или перезагрузке, когда компилируется полная конфигурация.
- /etc/apache2/conf-available/ , /etc/apache2/conf-enabled/ : эти каталоги имеют те же отношения, что и каталоги sites-available и sites-enabled , но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальному хосту. Файлы из каталога conf-available можно активировать с помощью команды a2enconf и отключить с помощью команды a2disconf .
- /etc/apache2/mods-available/ , /etc/apache2/mods-enabled/ : эти каталоги содержат доступны и активированные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки определенных модулей, а файлы с расширением .conf содержат конфигурации этих модулей. Модули можно активировать и отключать с помощью команд a2enmod и a2dismod .
Журналы сервера
- /var/log/apache2/access.log : по умолчанию каждый запрос веб-сервера регистрируется в этом файле журналда, если Apache не настроен по другому.
- /var/log/apache2/error.log : по умолчанию все ошибки регистрируются в этом файле. Директива LogLevel в конфигурации Apache указывает, насколько детальные записи регистрируются в журналах ошибок.
Заключение
Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.
Если вы хотите развернуть более сложный набор обслуживания приложений, ознакомьтесь со статьей Настройка стека LAMP в Ubuntu 20.04.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Установка веб-сервера Apache в Ubuntu 22.04
HTTP-сервер Apache – наиболее распространенный в сети веб-сервер. Он предоставляет множество полезных функций, включая динамическую загрузку модулей, надежную поддержку мультимедиа и широкую интеграцию с другим популярным программным обеспечением.
В этом туториале вы узнаете, как установить веб-сервер Apache на Ubuntu 22.04.
Требования
Прежде чем приступить к работе, на вашем сервере должен быть пользователь без root с доступом к sudo. Также нужно включить базовый брандмауэр для блокирования ненужных портов. Как настроить учетную запись обычного пользователя и установить брандмауэр для вашего сервера, вы можете узнать в нашей статье.
Когда всё настроено, войдите в систему как пользователь без root.
1: Установка Apache
Apache есть в стандартном репозитории Ubuntu, поэтому его можно установить с помощью стандартного пакетного менеджера .
Начнем с обновления локального индекса пакетов, чтобы отразить последние изменения в основной ветке:
sudo apt update
Затем установим пакет apache2:
sudo apt install apache2
После этого apt установит Apache и все необходимые зависимости.
2: Настройка брандмауэра
Перед тестированием Apache необходимо изменить настройки брандмауэра, чтобы разрешить внешний доступ к веб-портам по умолчанию. У вас должен быть настроен брандмауэр UFW для ограничения доступа к вашему серверу, если вы следовали инструкциям в предварительных требованиях.
Apache во время установки регистрируется в UFW и предлагает несколько профилей приложений, с помощью которых можно включать или отключать доступ через брандмауэр.
Чтобы посмотреть список профилей ufw введите:
sudo ufw app list
Available applications: Apache Apache Full Apache Secure OpenSSH
Из вывода получаем, что для Apache доступны три профиля:
- Apache: этот профиль открывает только порт 80 (обычный незашифрованный веб-трафик).
- Apache Full: этот профиль открывает порт 80 (обычный незашифрованный веб-трафик) и порт 443 (зашифрованный трафик TLS/SSL).
- Apache Secure: этот профиль открывает только порт 443 (зашифрованный трафик TLS/SSL).
Рекомендуем включить самый строгий профиль, он всё равно будет разрешать настроенный трафик. Но в этом мануале мы еще не настроили SSL, поэтому нужно разрешить трафик только через порт 80:
sudo ufw allow ‘Apache’
Для проверки изменений введите:
sudo ufw status
В выводе будет список разрешенного HTTP-трафика:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
Как показывает результат, профиль был активирован и доступ к веб-серверу Apache разрешен.
3: Тестирование веб-сервера
Ubuntu после установки запустит Apache автоматически. То есть, веб-сервер уже должен работать.
С помощью системы инициализации systemd мы можем убедиться, что он запустился. Запросите его состояние :
sudo systemctl status apache2
apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 29435 (apache2) Tasks: 55 (limit: 1137) Memory: 8.0M CGroup: /system.slice/apache2.service ├─29435 /usr/sbin/apache2 -k start ├─29437 /usr/sbin/apache2 -k start └─29438 /usr/sbin/apache2 -k start
Согласно этому выводу сервис успешно запустился. Но лучше ещё запросить страницу Apache, чтобы убедиться, что веб-сервер работает правильно.
Чтобы открыть стандартную посадочную страницу Apache, укажите свой домен. Если у вас нет домена, введите внешний IP-адрес своего сервера. Если вы не знаете свой IP-адрес, вы можете узнать его с помощью команды:
Вы получите список адресов, разделенный пробелами. Проверьте каждый полученный адрес в браузере, чтобы найти адрес вашего сервера.
Другой вариант — с помощью ресурса Icanhazip, который должен предоставить вам внешний IP-адрес, прочитанный из другого места в Интернете:
curl -4 icanhazip.com
Узнав свой внешний IP-адрес, введите в строку браузера:
Вы увидите стандартную страницу Apache для Ubuntu:

Эта страница дает понять, что веб-сервер Apache работает правильно; также она содержит базовую информацию о важных файлах и каталогах Apache.
4: Управление процессами Apache
Теперь давайте посмотрим, как управлять веб-сервером с помощью systemctl.
Чтобы остановить веб-сервер, введите:
sudo systemctl stop apache2
Запустить его поможет команда:
sudo systemctl start apache2
Для перезапуска используйте команду:
sudo systemctl restart apache2
Во время настройки Apache можно часто перезагружать, не сбрасывая соединений. Для этого нужно использовать команду:
sudo systemctl reload apache2
По умолчанию Apache добавлен в автозагрузку (запускается автоматически вместе с сервером). Чтобы удалить этот сервис из автозагрузки, отключите его:
sudo systemctl disable apache2
Чтобы добавить Apache в автозагрузку, используйте эту команду:
sudo systemctl enable apache2
Теперь Apache будет снова запускаться автоматически.
5: Настройка виртуальных хостов (рекомендуется)
На веб-сервере Apache вы можете использовать виртуальные хосты (в Nginx это блоки server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен example.com, который нужно заменить доменом вашего сайта.
В Ubuntu 22.04 веб-сервер Apache по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для работы одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.
Создайте каталог для your_domain:
sudo mkdir /var/www/your_domain
Затем укажите права на каталог с помощью переменной $USER:
sudo chown -R $USER:$USER /var/www/your_domain
Права должны быть предоставлены, если вы не меняли значение umask , которое устанавливает права файлов по умолчанию. Чтобы убедиться, что права предоставлены и пользователь может работать с файлами, нужно ввести команду:
sudo chmod -R 755 /var/www/your_domain
Затем создайте образец страницы index.html с помощью nano или другого текстового редактора:
sudo nano /var/www/your_domain/index.html
Добавьте в файл следующий код HTML:
Welcome to Your_domain! Success! The your_domain virtual host is working!
Сохраните и закройте файл.
Нужно создать файл виртуального хоста с правильными директивами, чтобы Apache мог обслуживать этот контент. Чтобы напрямую не изменять файл конфигурации по умолчанию, расположенный в /etc/apache2/sites-available/000-default.conf, мы создадим новый в /etc/apache2/sites-available/your_domain.conf:
sudo nano /etc/apache2/sites-available/your_domain.conf
Вставьте в файл следующий блок настроек. Он похож на конфигурации по умолчанию, но содержит правильный домен и каталог:
ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog $/error.log CustomLog $/access.log combined
Обратите внимание, мы обновили DocumentRoot на наш новый каталог, а ServerAdmin на адрес электронной почты, к которому может получить доступ администратор сайта your_domain. Также мы добавили две директивы: ServerName, которая устанавливает базовый домен, который должен соответствовать этому определению виртуального хоста, и ServerAlias – определяет дополнительные имена, которые должны соответствовать базовому имени.
После того, как закончите, сохраните и закройте файл.
Включим файл с помощью a2ensite:
sudo a2ensite your_domain.conf
Отключите сайт по умолчанию, определенный в 000-default.conf:
sudo a2dissite 000-default.conf
Далее проверим ошибки настроек:
sudo apache2ctl configtest
Вывод должен быть следующим:
Перезапустите Apache, чтобы изменения вступили в силу:
sudo systemctl restart apache2
Теперь Apache должен обслуживать ваше доменное имя. Для проверки перейдите по адресу http://your_domain, вы должны увидеть что-то вроде этого:

6: Важные файлы и каталоги Apache
Теперь, когда вы знаете, как управлять Apache, разберем несколько важных каталогов и файлов.
- /var/www/html: Фактический веб-контент, который по умолчанию состоит только из стандартной страницы Apache (ранее вы её уже видели), обслуживается из каталога /var/www/html. Это можно изменить, внеся корректировки в файлы конфигурации Apache.
- /etc/apache2: каталог конфигурации Apache. Все файлы настроек Apache находятся здесь.
- /etc/apache2/apache2.conf: основной файл настройки Apache. Его можно корректировать для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
- /etc/apache2/ports.conf: В этом файле указаны порты, которые прослушивает Apache. По умолчанию Apache прослушивает порт 80 и дополнительно порт 443, если включен SSL.
- /etc/apache2/sites-available/: каталог, в котором могут храниться виртуальные хосты для каждого сайта. Apache не будет использовать файлы настроек из этого каталога, если они не связаны с каталогом sites-enabled. Обычно вся конфигурация блока выполняется в этом каталоге, а затем включается путем ссылки на другой каталог с помощью команды a2ensite.
- /etc/apache2/sites-enabled/: каталог, в котором хранятся включенные виртуальные хосты для каждого сайта. Обычно они создаются по ссылке на файлы настроек из каталога sites-available с помощью команды a2ensite. Apache считывает конфигурационные файлы и ссылки, находящиеся в этом каталоге, при запуске или перезагрузке для компиляции полной настройки.
- /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Эти каталоги имеют те же отношения, что и каталоги sites-available и sites-enabled, но используются для хранения фрагментов настроек, которые не принадлежат виртуальному хосту. Файлы в каталоге conf-available можно включить с помощью команды a2enconf, а отключить – a2disconf.
- /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: эти каталоги содержат доступные и включенные модули соответственно. Файлы, заканчивающиеся на .load, содержат фрагменты для загрузки определенных модулей, а которые заканчиваются на .conf, содержат настройки этих модулей. Модули можно включать и отключать с помощью команд a2enmod и a2dismod.
- /var/log/apache2/access.log: каждый запрос к вашему веб-серверу записывается в этот лог по умолчанию, если Apache не настроен иначе.
- /var/log/apache2/error.log: по умолчанию все ошибки записываются в этот файл. Директива LogLevel в конфигурации Apache определяет, насколько подробную информацию будут содержать журналы ошибок.
Заключение
В этом мануале вы научились устанавливать веб-сервер Apache и управлять его процессами. Теперь у вас есть много вариантов для дальнейшей работы: вы можете выбрать тип контента, который хотите обслуживать, и внедрить дополнительные технологии для создания более сложного сайта.
Если вы хотите создать более полный стек приложений, вы можете прочитать эту статью о том, как настроить стек LAMP в Ubuntu.
Настройка виртуальных хостов Apache в Ubuntu 20.04
Данное руководство поможет вам увидеть то, как происходит настройка виртуальных хостов Apache на серверах Ubuntu 20.04.
Для начала необходимо произвести установку и первоначальную настройку Apache на вашем VPS.
Установка Apache
Apache можно установить из стандартных репозиториев Ubuntu, поэтому для запуска установки зарегистрируйтесь в системе учётной записью, входящей в группу sudo , и наберите в командной строке:
$sudo apt update$sudo apt install apache2
Настройка межсетевого экрана
Перед запуском Apache следует произвести некоторые изменения в настройках брандмауэра на вашем сервере. В качестве упрощённого интерфейса для настройки межсетевого экрана в Ubuntu 20.04 как правило используется Uncomplicated Firewall или UFW.
Для открытия доступа к серверу со стороны Apache, нужно выдать этому приложению разрешение на доступ, зарегистрировав его в UFW. Список знакомых утилите UFW приложений можно посмотреть командой:
$ sudo ufw app list

Чтобы разрешить доступ только трафику без шифрования, вам нужно открыть на UFW только порт 80 или профиль ‘ Apache ‘:
$ sudo ufw allow 'Apache'
Проверьте статус интерфейса UFW:
$ sudo ufw status

Если статус UFW – не активный, брандмауэр следует активировать:
$ sudo ufw enable
Проверка доступности веб-сервера
Сейчас проверьте статус Apache:
$ sudo systemctl status apache2

И теперь, если в браузере вы введёте IP-адрес вашего VPS, вы увидите стартовую страницу установленного веб-сервера:

Настройка хостов
И вот, настало время посмотреть, как непосредственно осуществляется настройка виртуальных хостов Apache в Ubuntu 20.04. В качестве домена используйте имя своего зарегистрированного сайта (в примере это – my-domain.host ). Учитывая это, необходимо произвести следующие действия:
- Создать каталог для вашего домена:
$ sudo mkdir /var/www/my-domain.host
- Изменить владельца каталога:
$ sudo chown -R $USER:$USER /var/www/my-domain.host
- Изменить права на каталог:
$ sudo chmod -R 755 /var/www/my-domain.host
- Теперь создайте в этом каталоге файл index.html , например, с использованием nano :
$ sudo nano /var/www/my-domain.host/index.html
- В index.html скопируйте следующий текст:
My domain on Apache! MY-DOMAIN.HOST
It is my domain.
- Перед закрытием файла не забудьте сохранить внесённые изменения (если вы используете nano , нажмите Ctrl+X , Y и Enter ).
- Следующим действием необходимо создать файл конфигурации настраиваемого хоста:
$ sudo nano /etc/apache2/sites-available/my-domain.host.conf
- Вставьте в него следующий текст (замените my-domain.host на имя своего домена, а в строку ServerAdmin введите доступный вам E-mail):
ServerAdmin mail@my-domain.host ServerName my-domain.host ServerAlias www.my-domain.host DocumentRoot /var/www/my-domain.host ErrorLog $/error.log CustomLog $/access.log combined
Теперь созданный виртуальный хост необходимо активировать:
$ sudo a2ensite my-domain.host.conf
А дефолтный домен нужно отключить:
$ sudo a2dissite 000-default.conf
Теперь необходимо протестировать синтаксис конфигурации хоста:
$ sudo apache2ctl configtest
Убедитесь, что ошибок нет:

Теперь произведите перезапуск Apache:
$ sudo systemctl restart apache2
И теперь, если в браузере вы введёте имя своего домена, браузер должен показать вам то, что вы сохранили в файле index.html :

Таким образом, вы произвели настройку хоста Apache на вашем VPS для одного из ваших сайтов. Вы вполне можете поместить на этот же сервер ещё один или даже несколько ваших доменов. Для чего необходимо ещё раз произвести действия, описанные в разделе “Настройка хостов”, но при этом, каждый раз вам нужно использовать уже другое доменное имя для добавления хоста Apache в систему.