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

Обсудить

Введение

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

Из этого руководства вы узнаете о том, как установить Apache на сервер с установленной ОС Ubuntu 16.04.

Требования

Для того, чтобы выполнить необходимые действия, вам понадобится сервер с установленной ОС Ubuntu 16.04 и пользователем, который может выполнять команды sudo (не суперпользователь). Также вы можете настроить базовый фаервол для блокировки несущественных портов.

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

 

VPS/VDS

 

Шаг 1: установка Apache

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

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

$ sudo apt-get update

После этого нужно установить пакет apache2:

$ sudo apt-get install apache2

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

Шаг 2: настройка фаервола

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

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

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

$ sudo ufw app list

Вывод будет примерно таким:

Available applications:
 Apache
 Apache Full
 Apache Secure
 OpenSSH

Как вы видите, для Apache доступно три профиля:

  • Apache: этот профиль открывает 80 порт (обычный, незашифрованный веб-трафик)
  • Apache Secure: этот профиль открывает только 443 порт (TLS/SSL зашифрованный трафик)
  • Apache Full: этот профиль открывает оба порта – 80 и 443

В данном случае вам необходимо разрешить входящий трафик профиля Apache Full следующей командой:

$ sudo ufw allow 'Apache Full'

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

$ sudo ufw status

В выводе вы должны увидеть, что HTTP трафик разрешен:

Output
Status: 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. Веб-сервер уже должен работать.

Для того, чтобы убедиться в том, что сервис уже работает, введите следующую команду:

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

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

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

1 вариант. Ввести в командной строке сервера:

$ hostname –I

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

2 вариант. Следующие команды также помогут вам получить IP-адрес вашего сервера (как будто вы обращаетесь к нему из другого места сети):

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

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

Apache на Ubuntu 16.04Смысл этой страницы – показать, что Apache работает корректно, а также дать базовую информацию о файлах и директориях Apache.

Шаг 4: базовые команды Apache

Для работы с веб-сервером Apache вам необходимо знать базовые команды.

Команда для остановки веб-сервера:

$ sudo systemctl stop apache2

Команда для запуска веб-сервера (после остановки):

$ sudo systemctl start apache2

Команда для перезапуска (остановки и запуска):

$ sudo systemctl restart apache2

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

$ sudo systemctl reload apache2

По умолчанию Apache настроен на автоматический запуск после начала работы сервера. Но эту настройку можно изменить при помощи команды:

$ sudo systemctl disable apache2

Если же вы все-таки хотите, чтобы Apache запускался вместе с сервером, введите:

$ sudo systemctl enable apache2

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

Шаг 5: важные файлы и директории Apache

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

Контент

  • /var/www/html: здесь находится тот веб-контент, который изначально стоит только из стандартной приветственной страницы Apache, которую вы видели выше.

Конфигурация сервера

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

Логи сервера

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

Заключение

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

Комментарии