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

Вступление

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

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

Предпосылки

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

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

Шаг 1: Установите Apache

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

Мы начнем с обновления локального индекса пакета, чтобы отразить последние восходящие изменения. После этого мы можем установить пакетapache2:

sudo apt-get update
sudo apt-get install apache2

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

Шаг 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)

Для наших целей мы разрешим входящий трафик для профиляApache Full, набрав:

sudo ufw allow 'Apache Full'

Вы можете проверить изменение, набрав:

sudo ufw status

Вы должны увидеть разрешенный HTTP-трафик в отображаемом выводе:

OutputStatus: active

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

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

Шаг 3: Проверьте ваш веб-сервер

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

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

sudo systemctl status apache2
Output● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Fri 2017-05-19 18:30:10 UTC; 1h 5min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4336 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 4359 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 55
   Memory: 2.3M
      CPU: 4.094s
   CGroup: /system.slice/apache2.service
           ├─4374 /usr/sbin/apache2 -k start
           ├─4377 /usr/sbin/apache2 -k start
           └─4378 /usr/sbin/apache2 -k start

May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Stopped LSB: Apache2 web server.
May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Starting LSB: Apache2 web server...
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]:  * Starting Apache httpd web server apache2
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: 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
May 19 18:30:10 ubuntu-512mb-nyc3-01 apache2[4359]:  *
May 19 18:30:10 ubuntu-512mb-nyc3-01 systemd[1]: Started LSB: Apache2 web server.

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

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

Если вы используете DigitalOcean и не настроили доменное имя для вашего сервера, вы можете следовать нашему руководствуhow to set up a domain with DigitalOcean, чтобы настроить его.

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

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

hostname -I

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

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

sudo apt-get install curl
curl -4 icanhazip.com

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

http://server_domain_or_IP

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

Apache default page

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

Шаг 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: ознакомьтесь с важными файлами и каталогами 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 use Apache Virtual Hosts here. Если вы хотите создать более полный стек приложений, ознакомьтесь с этой статьей оhow to configure a LAMP stack on Ubuntu 16.04.

Related