Введение

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

В этом обучающем руководстве мы расскажем, как установить веб-сервер Apache на сервере Ubuntu 20.04. Более подробную версию этого обучающего руководства можно найти в документе Установка веб-сервера Apache в Ubuntu 20.04.

Предварительные требования

apache illustration for: Предварительные требования

Для прохождения этого обучающего модуля вам потребуется следующее:

  • Один сервер Ubuntu 20.04 и обычный пользователь без прав root с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр для вашего сервера, следуя указаниям руководства Начальная настройка сервера Ubuntu 20.04.

Создав учетную запись, войдите в систему как пользователь без прав root.

Шаг 1 — Установка Apache

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

Обновите локальный индекс пакетов:

				
					
sudo apt update

				
			

Установите пакет apache2:

				
					
sudo apt install apache2

				
			

Шаг 2 — Настройка брандмауэра

Проверьте доступные профили приложений ufw:

				
					
sudo ufw app list

				
			
				
					
[secondary_label Output]

Available applications:

  Apache

  Apache Full

  Apache Secure

  OpenSSH

				
			

Мы активируем профиль с наибольшими ограничениями, который будет разрешать заданный трафик, а именно трафик на порту 80 (обычный веб-трафик без шифрования):

				
					
sudo ufw allow 'Apache'

				
			

Проверьте изменения:

				
					
sudo ufw status

				
			
				
					
[secondary_label Output]

Status: active



To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere                  

Apache                     ALLOW       Anywhere                  

OpenSSH (v6)               ALLOW       Anywhere (v6)             

Apache (v6)                ALLOW       Anywhere (v6)

				
			

Шаг 3 — Проверка веб-сервера

Используйте команду systemd init system, чтобы проверить работу службы:

				
					
sudo systemctl status apache2

				
			
				
					
[secondary_label Output]

apache2.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, но вы должны заменить это имя собственным доменным именем. Дополнительную информацию о настройке доменного имени с помощью платформы the cloud provider можно найти в нашей статье Введение в DNS hosting.

Создайте каталог для your_domain:

				
					
sudo mkdir /var/www/<^>your_domain<^>

				
			

Назначьте владельца каталога:

				
					
sudo chown -R $USER:$USER /var/www/<^>your_domain<^>

				
			

Разрешения корневых каталогов веб-сервера должны быть правильными, если вы не изменяли значение unmask. Тем не менее вы можете проверить это с помощью следующей команды:

				
					
sudo chmod -R 755 /var/www/<^>your_domain<^>

				
			

Создайте в качестве примера страницу index.html, используя nano или свой любимый редактор:

				
					
nano /var/www/<^>your_domain<^>/index.html

				
			

Добавьте в страницу следующий образец кода HTML:

				
					
[label /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:

				
					
sudo nano /etc/apache2/sites-available/&lt;^&gt;your_domain&lt;^&gt;.conf

				
			

Вставьте следующий блок конфигурации, обновленный с учетом новых имен каталога и домена:

				
					
[label /etc/apache2/sites-available/your_domain.conf]

&lt;VirtualHost *:80&gt;

    ServerAdmin webmaster@localhost

    ServerName &lt;^&gt;your_domain&lt;^&gt;

    ServerAlias &lt;^&gt;your_domain&lt;^&gt;

    DocumentRoot /var/www/&lt;^&gt;your_domain&lt;^&gt;

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

&lt;/VirtualHost&gt;

				
			

Сохраните файл и закройте его после завершения.

Активируйте файл с помощью команды a2ensite:

				
					
sudo a2ensite &lt;^&gt;your_domain&lt;^&gt;.conf

				
			

Отключите сайт по умолчанию, определеный в 000-default.conf:

				
					
sudo a2dissite 000-default.conf

				
			

Проверьте наличие ошибок конфигурации:

				
					
sudo apache2ctl configtest

				
			

Вы должны получить следующий результат:

				
					
[secondary_label Output]

Syntax OK

				
			

Перезапустие Apache для внесения изменений:

				
					
sudo systemctl restart apache2

				
			

Теперь Apache должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://<^>your_domain<^>, после чего должны получить примерно следующее:

Заключение

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

Если вы хотите развернуть более сложный набор обслуживания приложений, ознакомьтесь со статьей Настройка стека LAMP в Ubuntu 20.04.