Введение
Веб-сервер Apache – один из самых распространенных в мире. Apache имеет широкий функционал, включающий динамически загружаемые модули, активное сообщество пользователей и отличную интеграцию с другим популярным ПО.
Из этого руководства вы узнаете о том, как установить Apache на сервер с установленной ОС Ubuntu 16.04.
Требования
Для того, чтобы выполнить необходимые действия, вам понадобится сервер с установленной ОС Ubuntu 16.04 и пользователем, который может выполнять команды sudo (не суперпользователь). Также вы можете настроить базовый фаервол для блокировки несущественных портов.
Если все готово, то авторизуйтесь под нужным пользователем перед выполнением дальнейших шагов.
Шаг 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 работает корректно, а также дать базовую информацию о файлах и директориях 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 определяет, какое количество информации об ошибках будет записываться.
Заключение
Теперь у вас есть установленный веб-сервер, и у вас есть большой выбор контента, который вы можете размещать, и технологий, которые вы можете использовать.
Комментарии