Как установить веб-сервер Apache в Ubuntu 18.04

Вступление

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

В этом руководстве мы объясним, как установить веб-сервер Apache на ваш сервер Ubuntu 18.04.

Предпосылки

Перед тем, как вы начнете это руководство, на вашем сервере должен быть настроен обычный пользователь без полномочий root с привилегиями sudo. Кроме того, вам нужно будет включить базовый брандмауэр для блокировки несущественных портов. Вы можете узнать, как настроить учетную запись обычного пользователя и настроить брандмауэр для своего сервера, следуя нашимinitial server setup guide for Ubuntu 18.04.

Если у вас есть доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.

[[step-1 -—- install-apache]] == Шаг 1. Установка Apache

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

Давайте начнем с обновления локального индекса пакета, чтобы отразить последние восходящие изменения:

sudo apt update

Затем установите пакетapache2:

sudo apt install apache2

После подтверждения установкиapt установит Apache и все необходимые зависимости.

[[step-2 -—- adjusting-the-firewall]] == Шаг 2. Настройка межсетевого экрана

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

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

Выведите список профилей приложенийufw, набрав:

sudo ufw app list

Вы увидите список профилей приложения:

OutputAvailable 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-трафик в отображаемом выводе:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Apache                     ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Apache (v6)                ALLOW       Anywhere (v6)

Как видите, профиль был активирован, чтобы разрешить доступ к веб-серверу.

[[step-3 -—- verify-your-web-server]] == Шаг 3 - Проверка вашего веб-сервера

В конце процесса установки Ubuntu 18.04 запускает Apache. Веб-сервер уже должен быть запущен.

Проверьте систему инициализацииsystemd, чтобы убедиться, что служба запущена, набрав:

sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago
 Main PID: 2583 (apache2)
    Tasks: 55 (limit: 1153)
   CGroup: /system.slice/apache2.service
           ├─2583 /usr/sbin/apache2 -k start
           ├─2585 /usr/sbin/apache2 -k start
           └─2586 /usr/sbin/apache2 -k start

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

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

Попробуйте ввести это в командной строке вашего сервера:

hostname -I

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

В качестве альтернативы вы можете набрать этот, который должен дать вам ваш публичный IP-адрес, как видно из другого места в Интернете:

curl -4 icanhazip.com

Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:

http://your_server_ip

Вы должны увидеть веб-страницу Ubuntu 18.04 Apache по умолчанию:

Apache default page

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

[[step-4 -—- manage-the-apache-process]] == Шаг 4. Управление процессом Apache

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

Чтобы остановить ваш веб-сервер, введите:

sudo systemctl stop apache2

Чтобы запустить веб-сервер, когда он остановлен, введите:

sudo systemctl start apache2

Чтобы остановить и снова запустить службу, введите:

sudo systemctl restart apache2

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

sudo systemctl reload apache2

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

sudo systemctl disable apache2

Чтобы снова включить службу при загрузке, введите:

sudo systemctl enable apache2

Apache теперь должен запускаться автоматически при повторной загрузке сервера.

[[шаг-5 -—- настройка-виртуальных-хостов-рекомендуется]] == Шаг 5. Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использоватьvirtual hosts (аналогично серверным блокам в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена с одного сервера. Мы создадим домен под названиемyour_domain, но вы должныreplace this with your own domain name. Чтобы узнать больше о настройке доменного имени в DigitalOcean, см. НашIntroduction to DigitalOcean DNS.

В Apache в Ubuntu 18.04 по умолчанию включен один серверный блок, который настроен на обслуживание документов из каталога/var/www/html. Хотя это хорошо работает для одного сайта, он может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения/var/www/html, давайте создадим структуру каталогов в/var/www для сайтаyour_domain, оставив/var/www/html на месте в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не выполняет не соответствует любым другим сайтам.

Создайте каталог дляyour_domain следующим образом:

sudo mkdir /var/www/your_domain

Затем назначьте владение каталогом с помощью переменной среды$USER:

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:

/var/www/your_domain/index.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

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

/etc/apache2/sites-available/your_domain.conf


    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

Обратите внимание, что мы обновилиDocumentRoot в нашем новом каталоге иServerAdmin на адрес электронной почты, доступный администратору сайтаyour_domain. Мы также добавили две директивы:ServerName, которая устанавливает базовый домен, который должен соответствовать этому определению виртуального хоста, иServerAlias, который определяет другие имена, которые должны совпадать, как если бы они были базовым именем.

Сохраните и закройте файл, когда вы закончите.

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

sudo a2ensite your_domain.conf

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

sudo a2dissite 000-default.conf

Далее давайте проверим ошибки конфигурации:

sudo apache2ctl configtest

Вы должны увидеть следующий вывод:

OutputSyntax OK

Перезапустите Apache, чтобы внести изменения:

sudo systemctl restart apache2

Apache должен теперь обслуживать ваше доменное имя. Вы можете проверить это, перейдя кhttp://your_domain, где вы должны увидеть что-то вроде этого:

Apache virtual host example

[[шаг-6 -–- ознакомление-с-важным-apache-файлами-и-каталогами]] == Шаг 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 указывает, насколько подробно будут содержаться журналы ошибок.

Заключение

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

Если вы хотите создать более полный стек приложений, вы можете прочитать эту статью оhow to configure a LAMP stack on Ubuntu 18.04.

Related