Apache – это веб-сервер – программа, передающая и получающая данные по протоколам HTTP и HTTPS. В основном используются релизы второй версии, то есть Apache 2.
С помощью модулей Apache, к нему можно добавлять поддержку различных языков программирования.
Apache входит в основные репозитории Ubuntu, поэтому устанавливается командой
sudo apt install apache2
. Перед этим рекомендуют обновить локальный индекс пакетов:
sudo apt update
После установки Apache зарегистрирует себя в UFW, создав несколько профилей:
Профиль Apache открывает порт 80, по которому идет обычный не зашифрованный веб-трафик. Профиль Apache Full открывает как порт 80, так и 443, по которому трафик шифруется с помощью TLS/SSL. Apache Secure открывает только порт 443.
Теперь следует настроить поведение брандмауэра по отношению к Apache. Обычно разрешают доступ к веб-серверу по обоим портам:
sudo ufw allow 'Apache Full'
Проверяем статус сервисов:
Вариант с v6 означает поддержку сетевого протокола IPv6.
Apache после установки сразу запускается, что можно проверить командой systemctl status apache2
. Среди вывода должна быть
выделенная надпись "active (running)".
Теперь, если набрать в браузере IP сервера, должна отображаться стартовая страница Apache:
Если планируется на сервере размещать не один сайт, следует выполнить настройку виртуальных хостов. Каждый хост будет содержать настройки для отдельно взятого сайта.
По умолчанию в Apache уже есть один виртуальный хост, настроенный на отдачу документов из каталога /var/www/html/:
Файл index.html – это тот, который мы видим, набрав в браузере IP-адрес нашего сервера. Если на сервере планируется разместить один сайт, то его файлы можно поместить в данный каталог, удалив исходный index.html.
Корневые каталоги других сайтов также рекомендуется размещать в директории /var/www/. Например, корневой каталог сайта может выглядеть так /var/www/example.com/html, или /var/www/example.com/, или /var/www/example.com/public_html/ и т. п.
Для создания цепочки каталогов, команду mkdir следует использовать с ключом -p
. Также
выполнять команду надо под sudo, так как права на /var/www/ принадлежат пользователю root.
Теперь следует поменять владельца каталога с файлами сайта на текущего пользователя и его группу. Иначе редактировать файлы будет не удобно:
С помощью редактора nano или vim создадим тестовую страницу HTML. Для nano команда будет такой: nano
/var/www/example.com/index.html
:
Подготовив каталог, переходим к непосредственной настройке виртуальных хостов в Apache.
Конфигурационные файлы виртуальных хостов находятся в каталоге /etc/apache2/sites-available/:
Файл 000-default.conf содержит настройки хоста для каталога /var/www/html/. Для других виртуальных хостов создаются отдельные файлы с подобным представленному ниже содержанием. Обратите внимание на имя файла. Оно имеет расширение conf, а называется именем домена. Создавать файл надо под sudo.
Доступный (available) виртуальный хост – не значит включенный (enabled). Если мы посмотрим каталог /etc/apache2/sites-enabled/, то не увидим там ссылку на конфигурационный файл нового хоста:
Чтобы она там появилась, надо выполнить команду sudo a2ensite ваш_сайт.conf
, желательно проверить отсутствие ошибок и перезагрузить Apache:
Теперь сайт будет открываться через браузер по доменному имени, если вы добавили домен с соответствующими настройками DNS в "Личном кабинете" хостинговой компании. У хостера FORNEX из настроек требуется указать только IP сервера:
Кроме того, у регистратора доменных имен заранее должны быть указаны NS-серверы хостера. Их обновление обычно занимает некоторое время.
Если же требуется только протестировать сайт, следует свой локальный компьютер (не VPS) при запросе соответствующего домена направлять на IP вашего сервера. В системах Linux для этого редактируется файл /etc/hosts:
Обратите внимание, поскольку сертификат для протокола HTTPS не устанавливался, сайт будет доступен только по адресу, который начинается с http.
Разрешение переопределения и перезаписи .htaccess
По умолчанию в Apache отключено использование файлов .htaccess. Однако они часто требуются для настройки директорий к поведению веб-сервера. Эти файлы широко используются в каталогах таких CMS как Drupal и WordPress.
Чтобы разрешить файлы .htaccess для конкретного сайта (его корневого каталога), надо прописать директиву AllowOverride в соответствующем сайту конфигурационном файле Apache, который находится в каталоге /etc/apache2/sites-available/.
Эта директива располагается внутри блока Directory, который находится внутри блока VirtualHost:
Когда сайт переводится на протокол HTTPS, в sites-available появляется еще один конфигурационный файл, уже для порта 443. В этом файле также надо прописать AllowOverride, или она прописывается сама, если сертификат устанавливается после того, как директива была прописана в конфигурационном файле для порта 80.
После установки директивы следует включить модуль перезаписи mod_rewrite, проверить конфигурацию на наличие ошибок и перезапустить Apache:
sudo a2enmod rewrite sudo apache2ctl configtest sudo systemctl restart apache2