Введение
Apache HTTP Server — это веб-сервер с открытым исходным кодом, созданный Apache Software Foundation. Это программное обеспечение, которое соединяет ваш локальный сервер с веб-клиентами, такими как Firefox или Google Chrome. Это соединение используется для отправки и получения файлов и данных.
Это самый популярный сервер в мире. Более 40% всех веб-сайтов во Всемирной паутине работают на базе Apache HTTP. Причинами его популярности являются высокая настраиваемость, отличные возможности интеграции и надежная поддержка медиафайлов. Apache работает на основе модульной архитектуры. Вы можете изменять отдельные модули для добавления и удаления различных функций. В этом руководстве мы расскажем вам, как установить сервер Apache на Ubuntu 18.04.
Перед установкой
Перед началом установки Apache вам необходимо позаботиться о некоторых предварительных требованиях. Для начала убедитесь, что вы уже настроили пользователя без прав root с привилегиями sudo на локальном сервере. Также вам понадобится брандмауэр. Вам нужно включить базовый брандмауэр и заблокировать второстепенные порты. Перед началом установки войдите в систему под своим пользователем без прав root с привилегиями. Вы можете легко установить свой сервер, следуя нашему руководству по настройке сервера Ubuntu.
Как установить веб-сервер Apache на Ubuntu 18.04
Если вы выполнили предварительные требования, можно переходить непосредственно к установке. Вы можете установить и изучить веб-сервер Apache за 6 простых шагов:
Шаг 1. Установка Apache
Вы будете рады узнать, что Apache уже является частью Ubuntu. Это означает, что вы можете установить Apache на свой сервер, используя стандартные инструменты управления пакетами. Он доступен в качестве программного обеспечения по умолчанию в репозитории. Сначала вам нужно обновить локальный индекс пакетов:
|
1 |
sudo apt update |
Эта команда отображает последние изменения из апстрима в индексе пакетов. Далее нам нужно ввести команду для установки пакета apache2:
|
1 |
sudo apt install apache2 |
Шаг 2. Изменение настроек брандмауэра
При выполнении предварительных требований вы должны были настроить брандмауэр UFW. Если вы следовали инструкциям, ваш брандмауэр будет блокировать доступ к серверу. Перед началом работы с Apache нам необходимо предоставить доступ к серверу для веб-портов по умолчанию. В результате настройки брандмауэра должны быть изменены.
Во время установки Apache регистрируется в UFW. Результатом этой регистрации является создание нескольких профилей приложений. Кроме того, вы можете использовать эти профили для включения или отключения доступа брандмауэра к Apache. Затем просмотрите эти приложения ufw с помощью следующей команды:
|
1 |
sudo ufw app list |
Вы увидите профиль вашего приложения в списке, подобном этому:

Приведенный выше список показывает, что были созданы три профиля приложений, а именно Apache, Apache Full and Apache Secure. Вот некоторые полезные сведения о каждом из этих профилей:
-
Apache:
Профиль Apache может открывать только порт 80. Этот порт разрешает обычный и незашифрованный веб-трафик.
-
Apache Full:
Профиль Apache Full может открывать как порт 80, так и порт 443. В то время как порт 80 разрешает обычный незашифрованный веб-трафик, порт 443 отвечает за трафик, зашифрованный с помощью TLS/SSL.
-
Apache Secure:
Наконец, Apache Secure открывает только порт 443. Как упоминалось выше, он отвечает за пропуск веб-трафика, зашифрованного с помощью TLS или SSL.
При выборе между этими профилями подумайте о настроенном вами трафике. Вам нужно убедиться, что желаемый трафик проходит, выбирая при этом наиболее строгий профиль. Настройка SSL на данный момент выходит за рамки нашего руководства. Поэтому пока мы сосредоточимся на трафике, поступающем через порт 80. Это означает, что в данном сценарии мы включаем профиль приложения «Apache». Вы можете сделать это следующим образом:
|
1 |
sudo ufw allow ‘Apache’ |
Чтобы проверить изменения, введите следующее:
|
1 |
sudo ufw status |
Эта команда выведет результат, содержащий HTTP-трафик, которому в данный момент разрешено проходить. Вы увидите что-то вроде этого:

Поток трафика показывает, что желаемый профиль Apache был активирован. Доступ к веб-серверу через брандмауэр был предоставлен.
Шаг 3. Проверка веб-сервера
Установка Apache завершена, а настройки брандмауэра изменены. По завершении этого процесса Ubuntu 18.04 автоматически запустит Apache. Далее вам необходимо проверить с помощью системы инициализации systemd, работает ли служба в данный момент. Если вы хотите узнать больше о системах инициализации, вы можете ознакомиться с нашим руководством по управлению службами и юнитами Systemd с помощью Systemctl. Чтобы проверить, работает ли служба, введите:
|
1 |
sudo systemctl status apache2 |
Вывод будет следующим:

В приведенном выше выводе вам нужно найти статус Active или running. Это показывает, что служба запущена и успешно работает. Существует другой, более предпочтительный способ проверить работу службы. Вы можете проверить ее статус, запросив страницу у Apache. Используя IP-адрес вашего сервера, вы можете подтвердить, работает ли программное обеспечение, перейдя на целевую страницу Apache по умолчанию. Вот команда, которую вы можете использовать, чтобы узнать IP-адрес вашего сервера, если вы его еще не знаете:
|
1 |
hostname -I |
Эта команда покажет результат с несколькими IP-адресами, разделенными пробелами. Протестируйте каждый из них отдельно в браузере. Другой способ получить доступ — узнать свой публичный IP-адрес. Вы можете использовать следующую команду:
|
1 |
curl -4 icanhazip.com |
Это покажет ваш IP-адрес, каким он виден из других мест в сети. Затем, как только вы получите свой IP-адрес, перейдите в веб-браузер. В адресной строке введите и запустите следующее:
|
1 |
http://your_server_ip |
Откроется веб-страница Apache по умолчанию для Ubuntu 18.04. Она выглядит следующим образом:

Эта страница содержит некоторую базовую информацию о ваших файлах и каталогах. Поскольку она открылась при вводе адреса, это указывает на то, что Apache работает правильно.
Шаг 4. Базовое управление в Apache
Проверка подтверждает, что Apache запущен и ваш сервер работает. Теперь мы рассмотрим некоторые базовые команды, которые вы можете использовать на сервере для управления.
Конфигурация по умолчанию вашего Apache запускает его при каждой загрузке сервера. У вас есть возможность отключить эту настройку. Введите:
|
1 |
sudo systemctl disable apache2 |
Чтобы повторно активировать эту функцию по умолчанию, используйте следующую команду:
|
1 |
sudo systemctl enable apache2 |
Затем введите следующее, если вы хотите остановить сервер вручную:
|
1 |
sudo systemctl stop apache2 |
Если вы хотите запустить его снова после остановки, используйте команду:
|
1 |
sudo systemctl start apache2 |
Чтобы остановить и запустить сервер, или, по сути, перезапустить его, введите:
|
1 |
sudo systemctl restart apache2 |
При остановке сервера он, как правило, теряет все свои соединения. Повторный запуск означает, что он снова находит и связывает эти соединения. При желании вы также можете перезагрузить Apache без потери соединения. Это особенно полезно при внесении изменений в конфигурацию. Введите следующее, чтобы перезагрузить без разрыва соединений:
|
1 |
sudo systemctl reload apache2 |
Шаг 5. Настройка виртуального хоста
Хотя это и не обязательно, настоятельно рекомендуется настроить виртуальные хосты. Виртуальные хосты — это небольшие блоки на сервере, содержащие группы конфигурационных данных. Вы можете разместить несколько доменов на одном виртуальном хосте вашего сервера.
По умолчанию, если вы используете Apache на Ubuntu 18.04, будет активен один серверный блок, который будет обслуживать документы в каталоге /var/www/html. Вам захочется изменить эту настройку, если вы размещаете несколько сайтов вместо одного. Однако есть другой возможный вариант, который работает еще лучше. Оставьте каталог /var/www/html нетронутым. Вместо этого перейдите в /var/www/, чтобы создать структуру каталогов для сайтов на вашем домене. Если вы сделаете это, каталог /var/www/html будет настроен как каталог по умолчанию. В случае, если запрос клиента не соответствует ни одному из сайтов на вашем домене, он будет обслуживаться отсюда.
После этого мы рассмотрим, как вы можете создать новый домен и связанный с ним каталог. В этом примере мы будем использовать гипотетическое имя your_domain. Заменяйте your_domain везде в последующих инструкциях на ваше собственное доменное имя. Для начала давайте посмотрим, как можно создать новый каталог для your_domain:
|
1 |
sudo mkdir /var/www/your_domain |
Теперь вам нужно назначить владельца каталога. Для этой цели вы можете использовать переменную окружения $USER:
|
1 |
sudo chown -R $USER:$USER /var/www/your_domain |
Для продолжения права доступа к вашему корневому веб-каталогу должны быть правильными. Если вы не трогали значение unmask в конфигурации, ваши права должны быть в порядке. Но если вы не уверены, вы всегда можете подтвердить это с помощью:
|
1 |
sudo chmod -R 755 /var/www/your_domain |
Далее мы создадим страницу index.html. Вы можете использовать nano, как мы, или любой другой редактор, если у вас есть предпочтения:
|
1 |
nano /var/www/your_domain/index.html |
Добавьте этот пример HTML-кода внутрь index, затем сохраните и закройте:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Добро пожаловать на Your_domain!</title> </head> <body> <h1>Успех! Виртуальный your_domain хост успешно запущен и работает!</h1> </body> </html> |
Следующий шаг — создание файла виртуального хоста. Файл виртуального хоста со всеми правильными директивами необходим для того, чтобы Apache мог обслуживать вышеуказанный пример содержимого. Файл конфигурации по умолчанию будет находиться по адресу: /etc/apache2/sites-available/000-default.conf. Вместо изменения этого файла мы создадим новый по адресу: /etc/apache2/sites-available/your_domain.conf.
|
1 |
sudo nano /etc/apache2/sites-available/your_domain.conf |
Как и прежде, мы добавим пример конфигурации. Однако на этот раз мы обновим его с учетом доменного имени и нового каталога, который мы только что создали. Добавьте этот блок, затем сохраните и закройте:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Как вы можете видеть выше, мы также обновили адрес электронной почты ServerAdmin. Это адрес, по которому можно связаться с администратором сайта your_domain. Кроме того, мы обновили DocumentRoot, указав новый каталог, и добавили две новые директивы. Эти директивы включают ServerName и ServerAlias. ServerName используется для установки основного домена. Основной домен должен совпадать для определения виртуального хоста. ServerAlias, с другой стороны, предоставляет другие имена, которые также должны совпадать, аналогично основному имени. Вы можете легко включить этот файл с помощью инструмента a2ensite:
|
1 |
sudo a2ensite your_domain.conf |
Чтобы отключить сайт по умолчанию, указанный в 000-default.conf, используйте эту команду:
|
1 |
sudo a2dissite 000-default.conf |
Теперь, когда конфигурация готова, вы можете проверить её на наличие ошибок, введя:
|
1 |
sudo apache2ctl configtest |
Если ошибок конфигурации нет, вы увидите следующий вывод:
|
1 2 3 |
Вывод Синтаксис OK |
Чтобы применить изменения, необходимо перезапустить сервер Apache, как было указано ранее:
|
1 |
sudo systemctl restart apache2 |
Вуаля! Вы настроили виртуальный хост и указали свое доменное имя. Чтобы проверить, действительно ли Apache обслуживает your_domain, перейдите по адресу http://your_domain.
Шаг 6. Обзор файлов и каталогов
Вы успешно выполнили базовую настройку сервера Apache. Кроме того, теперь вы знаете, как управлять службой Apache. Далее вы можете уделить некоторое время изучению наиболее важных каталогов и файлов.
Содержимое
- /var/www/html
Мы уже говорили об этом каталоге ранее. Он содержит страницу Apache по умолчанию. При желании вы можете изменить содержимое этой страницы. Для этого вам придется изменить конфигурационные файлы Apache.
Конфигурация сервера
- /etc/apache2
Это основной каталог конфигурации Apache. Это означает, что данный каталог содержит все конфигурационные файлы, связанные с Apache.
- /etc/apache2/apache2.conf
Как подсказывает имя файла в конце пути, это основной конфигурационный файл. Этот файл загружает несколько других файлов в каталоге и может использоваться для внесения изменений в конфигурацию Apache. Если вы хотите внести какие-либо изменения в конфигурацию сервера Apache, именно здесь вы будете их делать.
- /etc/apache2/ports.conf
Как следует из названия, этот файл относится к портам, которые мы обсуждали ранее. Порт 80 включен по умолчанию, а порт 443 активируется при подключении модулей с поддержкой SSL. Этот файл содержит сведения о том, какие порты открыты и включены.
- /etc/apache2/sites-available/
Здесь будут располагаться ваши виртуальные хосты. Вся конфигурация серверных блоков выполняется в этом каталоге. Чтобы включить серверные блоки, их необходимо связать с другими каталогами с помощью a2ensite. Apache получит доступ к файлам в этом каталоге только в том случае, если они были включены путем создания ссылки на каталог sites-enabled.
- /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/
Эти каталоги также имеют связь, аналогичную двум предыдущим примерам. Они содержат модули: доступные и включенные с помощью команды a2enmod. Чтобы отключить модуль, вы можете использовать команду a2dismod. Файлы с суффиксом .load содержат фрагменты, которые могут загрузить данный модуль. Файлы с суффиксом .conf содержат соответствующие сведения о конфигурации для данного модуля.
Журналы сервера
- /var/log/apache2/access.log
Этот файл журнала содержит все запросы, сделанные к вашему серверу. Это происходит по умолчанию. У вас есть возможность настроить Apache для записи запросов другим способом.
- /var/log/apache2/error.log
Это журнал ошибок. Все возникающие ошибки по умолчанию записываются прямо в этот файл. Вы можете настроить степень детализации записи журналов ошибок с помощью директивы LogLevel.
Заключение
Наконец, выполнив описанные выше шаги, вы сможете легко установить веб-сервер Apache на свою Ubuntu 18.04. Как только сервер появится в вашей системе, вы сможете изучить различные возможности, доступные на этой платформе. Вы можете использовать различные технологии для создания разного рода контента. Таким образом, вы сможете создать для себя уникальный и удобный опыт работы на сервере.
Вы также можете узнать, как защитить свой сервер Apache с помощью Let’s Encrypt, следуя нашему пошаговому руководству. Если вы хотите узнать, как установить Apache на CentOS 7, следуйте нашему руководству по установке стека Linux, Apache, MySQL, PHP (LAMP) на CentOS 7.
Приятной работы!
Комментарии
Комментариев пока нет. Будьте первым.