Установка веб-сервера Apache в Ubuntu 16.04

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

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

Требования

  • Сервер Ubuntu 16.04.
  • Пользователь с доступом к sudo (все действия нужно выполнить в сессии этого пользователя).
  • Базовый брандмауэр.

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

1: Установка Apache

Пакет Apache есть в стандартном репозитории Ubuntu, потому его можно установить с помощью стандартного пакетного менеджера.

Обновите индекс пакетов и установите apache2.

sudo apt-get update
sudo apt-get install apache2

Команда установит Apache и его зависимости.

2: Настройка брандмауэра

Теперь нужно отредактировать настройки брандмауэра и открыть доступ к стандартному порту Apache. Если вы выполнили руководство по начальной настройке сервера, брандмауэр UFW блокирует доступ к веб-серверу.

Во время установки Apache регистрируется в UFW и предоставляет несколько профилей, которые упрощают процесс управления доступом к Apache.

Чтобы просмотреть профили приложений ufw, введите:

sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Как видите, Apache предлагает три профиля:

  • Apache: поддерживает трафик по порту 80 (стандартный порт).
  • Apache Full: открывает порт 80 и 443 (шифрованный трафик TLS/SSL).
  • Apache Secure: поддерживает только шифрованный трафик TLS/SSL.

Чтобы включить Apache Full, введите:

sudo ufw allow 'Apache Full'

Убедитесь, что профиль включен:

sudo ufw status

В выводе вы увидите:

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.

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

sudo systemctl status apache2
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, укажите свое доменное имя или IP сервера.

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

hostname -I

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

Также вы можете узнать свой IP, запросив его с помощью команды curl:

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

Узнав свой внешний адрес, введите в браузер:

http://server_domain_or_IP

Вы увидите стандартную страницу Apache для Ubuntu 16.04.

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

4: Управление процессами Apache

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

sudo systemctl stop apache2

Запустить сервер поможет команда:

sudo systemctl start apache2

Для перезапуска используйте команду:

sudo systemctl restart apache2

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

sudo systemctl reload apache2

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

sudo systemctl disable apache2

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

sudo systemctl enable apache2

5: Важные файлы и каталоги Apache

Контент

Контент сайта должен храниться в каталоге /var/www/html. По умолчанию из него обслуживается только стандартная страница Apache, которую вы видели ранее. Чтобы изменить корневой каталог сайта, отредактируйте настройки Apache.

Конфигурации

  • /etc/apache2: конфигурационный каталог Apache, в котором хранятся все конфигурационные файлы.
  • /etc/apache2/apache2.conf: главный конфигурационный файл, в котором находятся глобальные настройки Apache. Он отвечает за загрузку других файлов Apache.
  • /etc/apache2/ports.conf: указывает порты, которые прослушивает Apache. По умолчанию веб-сервер Apache прослушивает порт 80; также он может прослушивать порт 443 после включения модуля для поддержки SSL.
  • /etc/apache2/sites-available/: каталог, в котором хранятся все файлы виртуальных хостов. Apache не будет использовать их, пока они не связаны с каталогом sites-enabled (см. ниже). Обычно в этом каталоге происходит настройка виртуальных хостов.
  • /etc/apache2/sites-enabled/: содержит включенные виртуальные хосты. При запуске или перезапуске Apache читает конфигурационные файлы и ссылки в этом каталоге, чтобы скомпилировать конфигурации.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: каталоги подобны каталогам sites-available и sites-enabled и работают по тому же принципу. В conf-available хранятся фрагменты конфигураций, которых нет в виртуальном хосте. Файлы в conf-available включаются с помощью команды a2enconf и выключаются с помощью a2disconf.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: также работают по принципу sites-available и sites-enabled. Эти каталоги содержат доступные и активные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки конкретных модулей. Файлы с расширением .conf хранят настройки этих модулей. Модули включаются и выключаются с помощью команд a2enmod и a2dismod.

Логи сервера

  • /var/log/apache2/access.log: по умолчанию каждый запрос  к веб-серверу записывается в этом логе доступа (Apache можно настроить иначе).
  • /var/log/apache2/error.log: по умолчанию в этом логе записываются все сообщения об ошибках. Директива LogLevel в настройках Apache определяет, сколько данных будет вноситься в лог.

Заключение

Теперь веб-сервер установлен и готов к работе. Читайте также:

Tags: ,