Как установить и настроить LAMP в Debian 11 (яблочко)
Одна из самых важных вещей при настройке сервера Linux — это развертывание веб-сайтов. Согласно опросу 1 миллиона самых загруженных веб-сайтов в мире, проведенному NetCraft.com в феврале 2022 года, примерно 23,44% из них работают на Apache.
В этом руководстве рассматриваются основы установки и настройки сервера Linux (в частности, Debian 11 Bullseye) для работы в качестве сервера LAMP.
Что такое LAMP-сервер?
В компьютерном мире LAMP является аббревиатурой для Linux (здесь используется Debian 11), Apache, MySQL, и PHP (LAMP). LAMP обычно используется для ссылки на стеки программного обеспечения (в частности, MySQL и PHP) на веб-сервере.
Прежде чем углубляться в аспекты настройки, важно знать о веб-сервере Apache.
Что такое веб-сервер Apache?
Apache был одним из «оригинальных» веб-серверов и ведет свою историю с 1995 года. Apache до сих пор широко используется и отличается долговечностью, большим количеством документации и тоннами модули для повышения гибкости.
Установка MySQL и PHP в Debian 11
1. В первой части Debian будет описан как сервер MySQL и PHP. Сегмент Linux в LAMP уже должен быть выполнен путем установки Debian 11 согласно следующей статье на TecMint:
- Свежая установка Debian 11 Bullseye
Когда Debian готов, пришло время установить необходимое программное обеспечение с помощью метаупаковщика apt.
sudo apt install mariadb-server php libapache2-mod-php php-zip php-mbstring php-cli php-common php-curl php-xml php-mysql
2. После завершения установки MySQL и PHP часто рекомендуется защитить установку MySQL с помощью утилиты mysql_secure_installation
.
После того, как вы выполните приведенную ниже команду, он попросит пользователя установить пароль root и удалить такие вещи, как анонимные пользователи, тестовые базы данных и удалить вход удаленного пользователя root в базу данных SQL.
sudo mysql_secure_installation
3. Теперь, когда MySQL настроен, давайте продолжим и выполним некоторые базовые настройки PHP для этого конкретного сервера. Хотя существует множество настроек, которые можно настроить для PHP, мы выполним несколько основных, которые в большинстве случаев всегда необходимы.
Открытый файл конфигурации PHP находится по адресу /etc/php/7.4/apache2/php.ini
.
sudo vi /etc/php/7.4/apache2/php.ini
Теперь найдите строку «memory_limit» и увеличьте лимит в соответствии с потребностями вашего приложения.
Еще один важный параметр, который следует проверить, — это «max_execution_time», и опять же по умолчанию для него будет установлено значение 30. Если приложению требуется больше, этот параметр можно изменить.
На данный момент MySQL и PHP5 готовы к размещению сайтов. Теперь пришло время настроить Apache2.
Установка и настройка Apache2
4. Теперь пришло время настроить Apache 2, чтобы завершить настройку сервера LAMP. Первым шагом к настройке Apache2 является фактическая установка программного обеспечения с помощью метаупаковщика apt.
sudo apt install apache2
Это установит все необходимые файлы и зависимости для Apache2.
После установки веб-сервер Apache будет запущен и обслуживать веб-страницу по умолчанию. Есть несколько способов убедиться, что веб-сервер Apache запущен и работает. Самый простой вариант — использовать утилиту lsof:
sudo lsof -i :80
Другой вариант — просто перейти по IP-адресу веб-сервера. Предполагая установку Debian по умолчанию, система, скорее всего, будет настроена на использование DHCP для автоматического получения IP-адреса.
Для определения IP-адреса сервера можно использовать одну из двух утилит. В данной ситуации подойдет любая утилита.
ip show addr [Shown below in red]
ifconfig [Shown below in green]
Независимо от того, какая утилита используется, полученный IP-адрес можно ввести в веб-браузер на компьютере в той же сети, чтобы убедиться, что Apache отображает страницу по умолчанию.
http://IP-Address
На данный момент Apache запущен и работает. Хотя страница Debian по умолчанию представляет собой яркий веб-сайт, большинство пользователей захотят разместить что-то свое. Следующие шаги будут посвящены настройке Apache 2 для размещения другого веб-сайта.
Хостинг нескольких веб-сайтов с помощью Apache в Debian
5. В состав Debian входит несколько полезных утилит для управления сайтами и модулями. Прежде чем приступить к использованию этих утилит, важно понять, какие функции они выполняют.
- a2ensite: эта утилита используется для включения веб-сайта после создания соответствующего файла конфигурации.
- a2dissite: эта утилита используется для отключения веб-сайта путем указания файла конфигурации веб-сайта.
- a2enmod: эта утилита используется для включения дополнительных модулей Apache2.
- a2dismod: эта утилита используется для отключения дополнительных модулей Apache2.
- a2query: эту утилиту можно использовать для сбора информации о сайтах, которые в данный момент включены.
Прежде всего давайте накопим некоторый опыт работы с первыми двумя. Поскольку Apache 2 в настоящее время размещает «веб-страницу по умолчанию», давайте продолжим и отключим ее с помощью a2dissite.
sudo a2dissite 000-default.conf
Эта команда отключит веб-сайт Apache по умолчанию, показанный на снимке экрана выше. Однако, чтобы любые изменения вступили в силу, необходимо перезагрузить конфигурацию Apache 2.
sudo systemctl reload apache2
Эта команда даст указание Apache 2 обновить включенные/отключенные сайты, которые он в настоящее время размещает. Это можно подтвердить, попытавшись снова подключиться к IP-адресу веб-сервера и заметив, что ничего не отображается (некоторые компьютеры кэшируют информацию; если после выполнения двух предыдущих команд компьютер по-прежнему отображает веб-сайт по умолчанию, попробуйте очистить веб-сайт). кэш браузера). Другой способ подтвердить, что сайт больше не активирован, — использовать утилиту a2query.
sudo a2query -s
На этом снимке экрана много чего происходит, поэтому давайте разберемся.
- Зеленое поле выше — это
a2query -s
, который указывает Apache 2 указать, какие сайты в данный момент обслуживаются. - Желтое поле — это
a2dissite 000-default.conf
, за которым следует перезагрузка службы apache2. Эти две команды предписывают Apache 2 отключить сайт по умолчанию, а затем перезагрузить активные/неактивные сайты. - Красное поле — это повторный вызов
a2query -s
, но обратите внимание, что на этот раз Apache отвечает, что ничего не обслуживается.
Давайте теперь рассмотрим создание сайта не по умолчанию. Первым шагом является переключение в каталог конфигурации Apache 2, который называется /etc/apache2
, с помощью утилиты cd.
cd /etc/apache2
В этом каталоге находится несколько важных файлов и каталогов, однако для краткости здесь будут рассмотрены только самые необходимые файлы.
Первое, что нужно сделать при настройке нового сайта, — это создать новый файл конфигурации в каталоге «sites-available». Измените каталоги на каталог «сайты доступны», а затем создайте новый файл конфигурации.
cd sites-available
sudo cp 000-default.conf tecmint-test-site.conf
При этом конфигурация с сайта по умолчанию будет скопирована в файл конфигурации нового сайта для дальнейшего изменения. Откройте новую страницу конфигурации сайта в текстовом редакторе.
sudo vi tecmint-test-site.conf
В этом файле есть одна очень важная строка для размещения веб-сайта: строка «DocumentRoot». Эта строка сообщает Apache, где находятся необходимые веб-файлы, которые он должен обслуживать при поступлении запросов на определенные ресурсы.
На данный момент эта строка будет указана в каталоге, который не существует, но вскоре появится и будет содержать простой веб-сайт для отображения этого сервера Debian.
DocumentRoot /var/www/tecmint
Сохраните изменения в этом файле и выйдите из текстового редактора.
Теперь необходимо создать и заполнить файлами каталог, из которого Apache 2 только что было приказано обслуживать файлы. Хотя эта статья будет работать с файлами HTML, возможно, у нас не хватит времени, чтобы объяснить, как создать полнофункционирующий веб-сайт, и оставить этот процесс читателю.
Итак, давайте создадим каталог для обслуживания Apache и добавим в него базовую веб-страницу HTML с именем «index.html».
sudo mkdir /var/www/tecmint
touch /var/www/tecmint/index.html
echo “It's ALIVE!” >> /var/www/tecmint/index.html
Приведенные выше команды создадут новый каталог с именем «tecmint», а также новый файл с именем «index.html» в каталоге tecmint.
Команда echo поместит в этот файл некоторый текст, чтобы он действительно отображал что-то в веб-браузере, когда Apache обслуживает веб-сайт.
Примечание. Страница, созданная автором для этого руководства, будет отображаться по-другому! Теперь, используя ранее обсуждавшиеся команды, Apache нужно указать, чтобы он обслуживал этот новый html-документ.
sudo a2ensite tecmint-test-site.conf
sudo systemctl reload apache2
sudo a2query -s tecmint-test-site.conf
Последняя команда выше просто подтвердит, что Apache2 действительно обслуживает вновь созданный веб-сайт. На этом этапе снова перейдите в веб-браузере к IP-адресу сервера и посмотрите, отображается ли вновь созданный веб-сайт (опять же, компьютеры любят кэшировать данные, поэтому для получения новой веб-страницы может потребоваться несколько обновлений).
Если вновь созданный сайт «Он ЖИВ!!!» отображается, значит, Apache 2 успешно настроен и отображает веб-сайт.
Поздравляем! Хотя это простая настройка, которая подготавливает сервер Linux LAMP для размещения сайта, есть гораздо более сложные вещи, которые можно сделать, и конфигурация во многом зависит от этой конечной цели.