Как установить веб-сервер Apache в Ubuntu 16.04
Введение
HTTP-сервер Apache является наиболее широко используемым веб-сервером в мире. Он предоставляет множество мощных функций, включая динамически загружаемые модули, надежную поддержку мультимедиа и обширную интеграцию с другим популярным программным обеспечением.
В этом руководстве мы обсудим, как установить веб-сервер Apache на ваш сервер Ubuntu 16.04.
Предпосылки
Прежде чем приступить к работе с этим руководством, на вашем сервере должен быть настроен обычный пользователь без полномочий root с привилегиями sudo
. Кроме того, вам потребуется настроить базовый брандмауэр для блокировки второстепенных портов. Вы можете узнать, как настроить учетную запись обычного пользователя и настроить брандмауэр для своего сервера, следуя нашему руководству по первоначальной настройке сервера для Ubuntu 16.04.
Когда у вас есть доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.
Шаг 1: Установите Апач
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, набрав:
- 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 и у вас не настроено доменное имя для вашего сервера, вы можете следовать нашему руководству, как настроить домен с помощью 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 работает правильно. Он также включает некоторую базовую информацию о важных файлах 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/
: каталог, в котором хранятся включенные виртуальные хосты для каждого сайта. Обычно они создаются путем ссылки на файлы конфигурации, найденные всайты-доступные
с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 указывает, сколько подробностей будет содержать журнал ошибок.
Заключение
Теперь, когда у вас установлен веб-сервер, у вас есть множество вариантов типа контента для обслуживания и технологий, которые вы хотите использовать для создания более богатого опыта.
Узнайте, как настроить стек LAMP в Ubuntu 16.04.