Как установить apache на ubuntu

Обновлено: 06.07.2024

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

Требования

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

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

Настроив свой сервер, войдите в сессию пользователя с доступом к sudo, чтобы начать работу.

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

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

Обновите локальный индекс пакетов:

sudo apt update

А затем установите пакет apache2:

sudo apt install apache2

С помощью этой команды менеджер пакетов apt установит Apache и все его зависимости.

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

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

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

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

sudo ufw app list

Вы увидите список доступных профилей:

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

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

Рекомендуется включить наиболее строгий профиль, который при этом позволит поддерживать текущий трафик. Поскольку мы еще не настроили SSL-сертификат, нам нужно разрешить трафик по порту 80:

sudo ufw allow 'Apache'

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

sudo ufw status

Вы увидите такой вывод:

Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)

3: Проверка веб-сервера

После установки сервер Ubuntu 20.04 запускает Apache самостоятельно.

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

Согласно этому выводу сервис работает правильно. Но лучше также запросить страницу Apache, чтобы подтвердить работу веб-сервера.

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

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

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

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

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

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

Теперь мы рассмотрим несколько базовых команд для управления веб-сервером с помощью systemctl.

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

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

5: Настройка виртуального хоста (рекомендуется)

На веб-сервере Apache вы можете использовать виртуальные хосты (в Nginx это блоки server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен your_domain, который вы должны заменить собственным доменом.

Apache Ubuntu 20.04 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта your_domain, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не отвечает другим сайтам.

Создайте каталог для your_domain.

sudo mkdir /var/www/your_domain

Затем задайте права на каталог с помощью переменной $USER:

sudo chown -R $USER:$USER /var/www/your_domain

Права должны быть установлены верно, если вы не меняли unmask, но на всякий случай вы можете ввести эту команду (тогда права на чтение, запись и выполнение будут только у владельца каталога, все остальные пользователи и групп смогут только читать его):

sudo chmod -R 755 /var/www/your_domain

Затем создайте образец страницы index.html с помощью nano или другого редактора:

sudo nano /var/www/your_domain/index.html

Вставьте в файл такой код HTML:

Сохраните и закройте файл.

Чтобы Apache мог обслуживать этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо того чтобы напрямую изменять конфигурационный файл по умолчанию, /etc/apache2/sites-available/000-default.conf, создайте новый файл /etc/apache2/sites-available/your_domain.conf:

sudo nano /etc/apache2/sites-available/your_domain.conf

Вставьте в файл следующий блок конфигураций. Он похож на конфигурации по умолчанию, но содержит правильный домен и каталог:

Обратите внимание: DocumentRoot содержит путь нового каталога, а ServerAdmin – новый адрес электронной почты администратора сайта your_domain. Мы также добавили в файл две директивы: ServerName определяет базовый домен, который должен соответствовать этому виртуальному хосту, а ServerAlias определяет алиасы.

Сохраните и закройте файл.

Включите файл с помощью a2ensite:

sudo a2ensite your_domain.conf

Отключите стандартный сайт, который определяется файлом 000-default.conf:

sudo a2dissite 000-default.conf

Проверьте ошибки в конфигурациях:

sudo apache2ctl configtest

Если ошибок нет, команда вернет такой вывод:

sudo systemctl restart apache2

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

Контент

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

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

  • /etc/apache2: каталог Apache, в котором хранятся все конфигурационные файлы.
  • /etc/apache2/apache2.conf: главный конфигурационный файл, в котором находятся глобальные настройки Apache. Он отвечает за загрузку других файлов.
  • /etc/apache2/ports.conf: указывает порты, которые прослушивает 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.

Логи сервера

Заключение

Теперь веб-сервер Apache установлен и готов к работе. Вы можете обслуживать разные типы контента и внедрить множество технологий для положительного пользовательского опыта.

В этом руководстве описывается, как установить и управлять веб-сервером Apache в Ubuntu 20.04.

Подготовка

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

Установка Apache

Apache включен в репозитории Ubuntu по умолчанию.

Установка довольно проста. В системах Ubuntu и Debian пакет и служба Apache называются apache2 .

Выполните следующие команды, чтобы обновить индекс пакета и установить Apache:

Когда процесс установки будет завершен, служба Apache запустится автоматически.

Вы можете проверить, что Apache запущен, набрав:

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

Вот и все, вы успешно установили Apache на свой сервер Ubuntu 20.04 и можете начать его использовать.

Предполагая, что вы используете UFW , вы можете сделать это, включив профиль Apache Full, который включает правила для обоих портов:

Проверка установки Apache

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

Настройка виртуального хоста

Apache поставляется с одним включенным виртуальным хостом по умолчанию. Все домены, указывающие на IP-адрес сервера, будут соответствовать виртуальному хосту по умолчанию. Если вы будете размещать один веб-сайт, вы можете загрузить его содержимое в /var/www/html и отредактировать конфигурацию виртуального хоста, найденную в файле /etc/apache2/sites-enabled/000-default.conf .

В целях тестирования создайте файл index.html внутри корневого каталога документов домена:

Сохраните и закройте файл, когда закончите.

Чтобы избежать проблем с разрешениями, измените владельца корневого каталога документов домена на пользователя apache ( www-data ):

Откройте текстовый редактор и создайте следующий файл:

Apache не читает файлы конфигурации, находящиеся в каталоге /etc/apache2/sites-available если они не связаны с каталогом /etc/apache2/sites-enabled .

Чтобы активировать конфигурацию виртуального хоста, создайте символическую ссылку с помощью утилиты a2ensite :

Проверьте конфигурацию на наличие синтаксических ошибок с помощью:

Если ошибок нет, вы увидите следующий вывод:

Перезапустите службу Apache, чтобы изменения вступили в силу:

Выводы

Мы показали вам, как установить Apache в Ubuntu 20.04. Теперь вы готовы начать развертывание своих приложений и использовать Apache в качестве веб-сервера или прокси-сервера.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Apache - это популярнейший свободный веб-сервер. Состоянием на 2020 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

Установка Apache

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

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

sudo systemctl enable apache2

Настройка Apache

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

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* - дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* - настройки модулей
  • /etc/apache2/sites-available/* - настойки виртуальных хостов
  • /etc/apache2/ports.conf - порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

apache

Timeout - указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

KeepAlive On - очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 - максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 - таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group - пользователь и группа, от имени которых будет работать программа.

HostnameLookups - записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel - уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include - все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

apache1

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:

<Directory /адрес/в/файловой/системе/>
Параметр значение
</Directory>

Здесь доступны такие основные опции:

AllowOverride - указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All - разрешать все, None - не читать эти файлы.

DocumentRoot - устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options - указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All - разрешить все, FollowSymLinks - переходить по символическим ссылкам, Indexes - отображать содержимое каталога если нет файла индекса.

Require - устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied - всем запретить, Require all granted - всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.

У нас остался файл /etc/apache2/ports.conf:

apache2

В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

apache3

Дальше поговорим немного о htacess. Совсем немного.

Настройка сервера Apache через htaccess

Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.

Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None, чтобы могли работать все настройки нужно AllowOverride All.

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

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего .htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache - модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

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

apache4

Включить модуль можно командой:

sudo a2enmod имя_модуля

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

apache5

Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.

Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

apache6

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2disconf имя модуля

Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:

sudo a2enmod expires
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

Было бы не совсем удобно, если на одной физической машине можно было размещать только один сайт. Apache может поддерживать сотни сайтов на одном компьютере и выдавать для каждого из них правильное содержимое. Для этого используются виртуальные хосты. Сервер определяет к какому домену приходит запрос и отдает нужное содержимое из папки этого домена.

Настройки хостов Apache расположены в папке /etc/apache2/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName - основное имя домена
  • ServerAlias - дополнительное имя, по которому будет доступен сайт
  • ServerAdmin - электронная почта администратора
  • DocumentRoot - папка с документами для этого домена

apache7

Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:

sudo a2ensite test.site

Здесь test.site - имя файла виртуального хоста. Для отключения тоже есть команда:

sudo a2dissite test.site

Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:

Вот, ну теперь будет работать, открывайте браузер, проверяйте.

Выводы

Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!

В этой инструкции мы установим Apache версии 2 (Apache2) на Ubuntu 20.04. Кроме того, мы настроим виртуальные хосты таким образом, чтобы на одном сервере могли размещаться несколько веб-сайтов.

Установка Apache2 в Ubuntu 20.04

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

При появлении запроса введите Y, чтобы продолжить установку.

После успешной установки Apache2 выполните следующую команду для просмотра версии.

Проверка версии сервера Apache

Проверка версии сервера Apache

Проверка Состояния Сервера Apache2 в Ubuntu 20.04

Далее следует проверить состояние сервера Apache2, для этого выполните следующую команду.

Проверка состояния сервера Apache

Проверка состояния сервера Apache

По умолчанию служба Apache2 должна быть активна (запущена). Если нет, запустите службу следующей командой.

Протестируйте установленный веб-сервер Apache2

Вы должны увидеть страницу Apache2 Ubuntu default page, как показано на рисунке ниже.

Настройка виртуальных хостов Apache2 в Ubuntu

Виртуальные хосты позволяют размещать более одного веб-сайта на одном сервере Apache2. В Nginx это называется серверными блоками.

Создание виртуального хоста

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

$ cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/setiwik.conf

Далее отключите виртуальный хост по умолчанию с помощью приведенной ниже команды.

Создать корневой каталог документа

Затем сделайте учетную запись Пользователя службы Apache2 (www-data) и группу (www-data) владельцами корневого каталога документа. Это можно сделать следующим образом.

$ sudo chown www-data:www-data /var/www/setiwik

Далее, предоставьте учетной записи Пользователя службы Apache2 (www-data) полный доступ к корневому каталогу документа с помощью следующей команды.

Создание индексного файла сайта

Теперь создайте индексный файл в корневом каталоге документа с помощью команды:

Скопируйте и вставьте пример HTML-кода ниже.

<!DOCTYPE html>
<html>
<head>
<title>Welcome to SETIWIK!</title>
<style>
body width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
>
</style>
</head>
<body>
<h1>Welcome to SETIWIK!</h1>
<p>Если вы видите эту страницу, веб-сайт SETIWIK работает правильно</p>
</body>
</html>

Сохраните и закройте файл index.html.

Измените конфигурацию виртуального хоста

Затем отредактируйте новый файл конфигурации виртуального хоста с помощью следующей команды.

$ sudo nano /etc/apache2/sites-available/setiwik.conf

Ниже приведен пример того, что ожидается после внесения изменений.

Сохраните и закройте файл конфигурации виртуального хоста.

Включите виртуальный хост Apache2

Чтобы включить виртуальный хост Apache2, выполните команду.

Наконец, перезапустите веб-сервер Apache2 с помощью:

$ sudo systemctl restart apache2

В заключение мы приведем некоторые основные команды systemctl, которые помогут вам управлять вашим веб-сервером Apache2.

Используйте restart, чтобы остановить службу Apache2, а затем запустить ее снова.

$ sudo systemctl restart apache2

Используйте опцию reload, чтобы указать Apache2 перезагрузить свои конфигурационные файлы, но без остановки службы.

Выполните команду stop, чтобы остановить службу Apache2.

Чтобы включить запуск службы Apache2 при загрузке сервера, выполните следующие действия:

Помощники Apache2

a2ensite – включить сайт apache2 или виртуальный хост.

a2dissite – используется для отключения сайта apache2 или виртуального хоста.

Базовая конфигурация Apache2 и файлы журналов

Конфигурационные файлы Apache2

/etc/apache2/apache2.conf — основной конфигурационный файл, который извлекает информацию из всех других конфигурационных файлов при запуске веб-сервера.

/etc/apache2/ports.conf — определяет порты прослушивания для входящих соединений.

/etc/apache2/mods-enabled — содержит информацию о конфигурации для управления модулями.

/etc/apache2/conf-enabled — содержит некоторую глобальную информацию о конфигурации.

/etc/apache2/sites-available — хранит конфигурации виртуальных хостов.

/etc/apache2/sites-enabled — определяет включенные виртуальные хосты.

Файлы журналов Apache2

/var/log/apache2/error.log — содержит информацию об ошибках, с которыми сталкивается Apache2.

/var/log/apache2/access.log — содержит все запросы, обработанные Apache2.

Заключение

Как установить стек LAMP

В этом руководстве мы установим стек LAMP (Linux, Apache, MySQL, PHP) на Ubuntu 20.04 и настроим веб-сервер.

Установка Apache

Первый компонент вашего стека LAMP в Ubuntu 20.04 – Apache.

Начните с обновления списков пакетов и установки Apache. Нажмите y и ENTER, когда вас попросят продолжить. Команда:

Установка может занять несколько минут.

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

Настоятельно рекомендуется настроить брандмауэр для обеспечения дополнительной безопасности вашего LAMP-стека в Ubuntu 20.04.

Мы начнем с добавления правила брандмауэра для SSH. Вы же не хотите получить блокировку при включении брандмауэра, когда настраиваете сервер удаленно?

Теперь мы можем добавить правила брандмауэра для Apache:

Теперь включите брандмауэр:

Вы также можете проверить текущее состояние брандмауэра с помощью:

Ниже мы видим, что брандмауэр активен и имеет два правила для каждой службы. v6 это сокращение от IPv6.

Тестовый Apache

Чтобы узнать, правильно ли установлен Apache на Ubuntu 20.04, мы можем проверить текущее состояние службы:

Если он включен и работает, вы должны увидеть зеленое активное состояние.

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

Возможно, вам придется нажать кнопку q для выхода из проверки состояния сервера при использовании SSH-клиента.

Теперь, когда служба Apache запущена, вы имеете возможность просмотреть тестовую веб-страницу Apache через свой веб-браузер.

Введите IP-адрес вашего сервера в адресную строку и нажмите ENTER.

apache2

Все готово! Вы можете найти страницу приветствия Apache в папке /var/www/html. Чтобы отредактировать этот файл, необходимо ввести:

Нажмите CTRL+X, чтобы выйти из текстового редактора nano.

Установка MySQL

Следующий компонент вашего стека LAMP на Ubuntu 20.04 – MySQL.

Начните с обновления репозиториев и установки пакета MySQL. Нажмите y и ENTER при появлении запроса на установку.

После завершения установки пакета мы можем проверить, работает ли служба MySQL:

При запуске вы увидите зеленый активный статус:

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

Настройка безопасности MySQL

Теперь вы должны запустить mysql_secure_installation, чтобы настроить безопасность для вашего сервера MySQL на Ubuntu 20.04.

Компонент проверки пароля (необязательно)

Вас спросят, хотите ли вы настроить плагин проверки пароля. Если вы по какой-то причине не хотите применять строгую политику паролей, эта настройка не нужна.

Нажмите ENTER, если не хотите настраивать плагин проверки пароля.

Создать пароль root

Если вы еще не создали пароль root для MySQL, вы должны создать его сейчас.

Создайте надежный пароль и введите его. Обратите внимание, что при вводе паролей в Linux ничего не отображается (никаких звездочек или точек тоже не будет).

Удаление анонимных пользователей

Далее вам будет предложено удалить анонимных пользователей.

Нажмите y и ENTER, чтобы удалить анонимных пользователей.

Отключить удаленный корневой вход в систему

Нажмите y и ENTER, чтобы удаленно запретить вход в систему root.

VDS Timeweb арендовать

Удалить тестовую базу данных

Нажмите y и ENTER, чтобы удалить тестовую базу данных.

Перезагрузить таблицы привилегий

Нажмите y и ENTER, чтобы перезагрузить таблицы привилегий.

Все готово! Основная настройка MySQL завершена.

Тестовый сервис MySQL

Компонент MySQL вашего стека LAMP на Ubuntu 20.04 готов к работе.

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

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

Чтобы выйти из MySQL, введите exit и нажмите ENTER.

Вы успешно установили и настроили MySQL для вашего стека-«фонаря»​ на Ubuntu 20.04!

Установка PHP

Последним компонентом вашего стека LAMP на Ubuntu 20.04 является PHP.

Начните с обновления репозитория и установки пакета PHP. Мы также установим пакеты libapache2-mod-php и php-mysql, которые позволят PHP взаимодействовать с базой данных MySQL.

Нажмите y и ENTER при появлении запроса на установку пакета PHP.

Тест PHP в командной строке

После завершения установки пакета мы можем протестировать PHP в командной строке.

Если PHP установлен правильно, вы должны увидеть нечто подобное:

Видите? Тогда все отлично!

Тест PHP для Apache

Теперь давайте протестируем PHP для Apache.

Создайте новый файл с именем info.php в корневом каталоге документа.

После открытия редактора nano введите следующий PHP-код:

Нужно сохранить и выйти из документа (нажмите CTRL+X, Y и затем ENTER).

Ниже мы видим, что страница info.php работает правильно.

PHP 7 тестовая страница на Apache и Ubuntu 20.04

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

Если вы планируете загружать файлы размером более 2 Мб через WordPress или аналогичный движок, нужно будет изменить файл конфигурации PHP и установить максимальный размер загрузки.

Установка стека LAMP на Ubuntu 20.04 завершена! Если вы хотите настроить виртуальные хосты или дополнительную конфигурацию для Apache, читайте далее.

  1. Выберите тариф VDS.
  2. Оплатите его.
  3. При настройке сервера отметьте Ubuntu 20.04 и стек LAMP.

Настройка виртуального узла (необязательно)

Если у вас пока нет доменного имени, вы можете обмануть свою ОС (Linux/Mac/Windows), чтобы разрешить перенаправление домена на IP-адрес вашего сервера с Ubuntu 20.04. Подробнее об этом поговорим далее

Создать каталог и index.html

Создайте index.html файл для тестирования:

Сохраняем изменения и выходим (нажмите CTRL+X, Y и затем ENTER).

Создание виртуального хоста

Сохраняем и выходим (CTRL+X, Y и ENTER)

Проверим наличие ошибок:

Отключите Apache по умолчанию, иначе он переопределит ваш виртуальный хост:

Далее надо перезапустить Apache.

Тестовый виртуальный хост

Теперь вам нужно перейти в настройки DNS вашего регистратора домена и указать А-запись для домена на IP-адрес вашего сервера Ubuntu 20.04 с LAMP. Как только запись станет активной (обычно это занимает от 24 до 48 часов), вы сможете увидеть тестовую страницу в браузере.

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

Редактировать файл hosts (необязательно)

Чтобы отредактировать файл hosts в Linux или Mac, запустите sudo nano /etc/hosts в терминале. Как только файлы hosts будут открыты, введите IP-адрес вашего сервера Ubuntu 20.04, а затем доменное имя, которое вы хотите разрешить для этого IP.

Замените x.x.x.x на IP-адрес вашего веб-сервера.

Узнать IP-адрес вашего сервера можно с помощью команды:

Настройка Apache (необязательно)

Теперь, когда у вас есть Apache, обслуживающий веб-страницы на вашем Ubuntu 20.04, могут потребоваться дополнительные настройки конфигурации.

Отключить список каталогов и включить AllowOverride

Apache по умолчанию будет перечислять содержимое ваших каталогов без индексов (index.html, index.РНР). Это угроза безопасности, поскольку она позволяет хакерам просматривать ваш веб-сервер в поисках сценариев.

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

Откройте файл конфигурации:

Нажмите CTRL + W и найдите <Directory /var/www/>.

Блок должен выглядеть примерно так:

Удалите Indexes, чтобы остановить список каталогов Apache, и измените AllowOverride None на AllowOverride All, чтобы включить .htaccess. Теперь это должно выглядеть так:

Сохраняем и выходим (CTRL+X, Y, ENTER).

Далее перезапускаем Apache.

Включить mod_rewrite

Если вы хотите настроить некоторые правила .htaccess, вам, скорее всего, придется включить mod_rewrite.

Далее нужно перезапустить Apache.

На этом полная установка и настройка стека LAMP завершена.

В скором времени ждите материал по установке phpMyAdmin. Всех с наступающим!

Читайте также: