Установка LAMP в Debian 10

Приветствую Вас, уважаемые читатели. Сегодня тема статьи: "Установка LAMP в Debian 10". Будем устанавливать, и настраивать веб-окружение LAMP, в операционной системе Debian 10.
LAMP – это комплект программного обеспечения (Linux, Apache, MySQL, PHP), для работы сайтов, cms, веб-приложений.
Я буду использовать доменное имя test.ru, предварительно прописанное в файле hosts, за ip-адресом сервера.
Создание директорий для работы сайта
- Прежде всего, нужно создать инфраструктуру для работы сайта.
- Создаём общую директорию для сайта, а в ней директории для файлов и логов.
# mkdir -p /var/www/test.ru/{site,log}
Установка веб-сервера Apache в Debian 10
- Для установки Apache, нужно выполнить соответствующую команду:
# apt install apache2 apache2-utils
- В процессе установки, веб-сервер будет запущен, и добавлен в автозагрузку.
Создание конфигурационного файла в Apache
- Прежде чем создавать конфигурационный файл нашего сайта, нужно удалить дефолтную конфигурацию Apache.
- Заходим в директории /etc/apache2/sites-available и /etc/apache2/sites-enabled, удаляем файл 000-default.conf, и ссылку на него.

- Теперь можно создать конфигурационный файл будущего сайта. Для удобства, создадим файл с именем нашего домена. В моём случае, это будет /etc/apache2/sites-enabled/test.ru.conf.
ServerName test.ru ServerAlias www.test.ru DocumentRoot /var/www/test.ru/site ErrorLog /var/www/test.ru/log/error.log CustomLog /var/www/test.ru/log/access.log common Options FollowSymLinks AllowOverride All Require all granted php_admin_value date.timezone 'Europe/Moscow' php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M
- На этом, с Apache пока закончим.
Настройка Firewall для работы Apache в Debian 10
- Чтобы сайт был доступен пользователям, нужно открыть требуемые порты в системном брандмауэре. Для работы сайта по протоколу HTTP, достаточно открыть 80 порт. Если сайт будет работать по HTTPS, то требуется открыть так же 443 порт.
- Команды для открытия портов, отличаются в зависимости от того, какую утилиту вы используете.
- Для UFW, команды будут такими:
# ufw allow 80/tcp # ufw allow 443/tcp
- Если Вы используете iptables, то набор команд будет таким:
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -p tcp --dport 443 -j ACCEPT # iptables-save > /etc/iptables/rules.v4
Установка и настройка сервера баз данных в Debian 10
- Установку MariaDB, можно произвести двумя способами. Либо из внутреннего архива пакетов, либо из официального архива MariaDB.
- Для установки из внутреннего архива, достаточно запустить команду:
# apt install mariadb-server mariadb-client
- Если Вы хотите произвести установку из официального архива MariaDB, то Вам нужно зайти на официальный сайт https://downloads.mariadb.org/mariadb/repositories, пройти по шагам выбора версии и зеркала, и произвести подключение одним из предложенных способов:
Спомощью команд: # apt install software-properties-common dirmngr apt-transport-https lsb-release ca-certificates # apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' # add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.docker.ru/mariadb/repo/10.6/debian buster main' С помощью добавления в файл /etc/apt/sources.list: # deb [arch=amd64,arm64,ppc64el] https://mirror.docker.ru/mariadb/repo/10.6/debian buster main # deb-src https://mirror.docker.ru/mariadb/repo/10.6/debian buster main После подключения архива, запускаем установку: # apt install mariadb-server mariadb-client
- В процессе установки, сервер будет запущен, и добавлен в автозагрузку.
- Теперь можно произвести первоначальную настройку сервера баз данных. Запускаем скрипт настройки.
# mysql_secure_installation
- На первом вопросе жмём «Enter», дальше создаём пароль пользователя root, и соглашаемся со всеми следующими вопросами.
- Пришло время создать базу данных для нашего сайта. Я создам базу данных test, и пользователя admin с паролем 123.
# mysql -u root -p MariaDB [(none)]> CREATE DATABASE test; MariaDB [(none)]> GRANT ALL PRIVILEGES ON test.* TO 'admin'@'localhost' IDENTIFIED BY '123'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit;
Установка PHP в Debian 10
- Выполняем установку PHP и некоторых модулей. Если требуется какой-нибудь дополнительный модуль, то его можно добавить в команду через пробел.
# apt install php libapache2-mod-php php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip
- По завершении установки, можно проверить работоспособность PHP, и конфигурации нашего сайта.
- Перезагружаем веб-сервер.
# systemctl restart apache2.service
- Создаем файл /var/www/test.ru/site/index.php, такого содержания:
<?php phpinfo();
- Открываем наш сайт с помощью браузера. Если всё было сделано правильно, то откроется страница с информацией об установленном PHP.

- Результат проверки положительный, значит теперь можно загружать файлы сайта в корневую директорию /var/www/test.ru/site.
- После загрузки файлов, добавляем нужные права на директорию сайта.
# chown www-data:www-data -R /var/www/test.ru/site # chmod -R 0775 /var/www/test.ru/site
Сертификат Let’s Encrypt для Apache в Debian 10
- Для возможности получения сертификата Let’s Encrypt, нужно установить дополнительную утилиту certbot.
# apt install certbot python3-certbot-apache
- В процессе установки, системный cron будет настроен на обновление сертификата. Задание будет выполняться каждые 12 часов.
- Так же доступна проверка таймера, и запуск обновления вручную.
# systemctl status certbot.timer # certbot renew --dry-run
- При установке утилиты сертификат не создаётся. Для его создания, нам нужно выполнить соответствующую команду:
# certbot certonly --apache -d test.ru -d www.test.ru
- В процессе выпуска сертификата, Вам будут задано несколько вопросов. Нужно указать свой email, согласиться с правила использования, согласиться или отказаться от рассылки, и отказаться от настройки редиректа. Его мы настроим сами вручную.
- После выпуска сертификата, в консоли появляется поздравление, информация о сроке действия сертификата, и адреса директорий, в которых находятся сертификат и ключи.
Настройка Apache для работы по HTTPS в Debian 10
- Чтобы Apache работал по протоколу HTTPS, нужно произвести некоторые настройки. Прежде всего, нужно активировать два дополнительных модуля.
# a2enmod ssl # a2enmod rewrite
- Кроме того, нужно изменить конфигурационный файл сайта. Вносим в файл /etc/apache2/sites-enabled/test.conf, базовую конфигурацию для работы по протоколу HTTPS.
ServerName test.ru ServerAlias www.test.ru DocumentRoot /var/www/test.ru/site ErrorLog /var/www/test.ru/log/error.log CustomLog /var/www/test.ru/log/access.log common RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] ServerName test.ru ServerAlias www.test.ru DocumentRoot /var/www/test.ru/site ErrorLog /var/www/test.ru/log/ssl.error.log CustomLog /var/www/test.ru/log/ssl.access.log common Options FollowSymLinks AllowOverride All Require all granted php_admin_value date.timezone 'Europe/Moscow' php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M SSLEngine on SSLCertificateFile /etc/letsencrypt/live/test.ru/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/test.ru/chain.pem SSLCertificateKeyFile /etc/letsencrypt/live/test.ru/privkey.pem SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS SSLHonorCipherOrder on
- Проверяем конфигурацию, и перезапускаем веб-сервер.
# apache2ctl configtest # systemctl restart apache2.service
- После внесённых изменений, сайт будет доступен по протоколу HTTPS.
Установка phpMyAdmin для Apache в Debian 10
- Пакет phpMyAdmin отсутствует в официальном архиве Debian 10. Чтобы произвести установку phpMyAdmin в Debian 10, нужно скачивать архив веб-приложения, и вручную производить кучу донастроек в файлах.
- Я предлагаю облегчить процесс путём установки phpMyAdmin из официального архива предыдущей версии Debian 9. При таком подходе версия будет старее, но всё-таки поддерживаемая, и установка будет произведена в пару кликов.
- Для подключения официального архива Debian 9, добавляем в файле /etc/apt/sources.list две строчки:
deb http://deb.debian.org/debian/ stretch main contrib non-free deb-src http://deb.debian.org/debian/ stretch main contrib non-free
- Запускаем команду обновления apt.
# apt update
- После произведённых действий, phpMyAdmin будет установлен одной командой:
# apt install phpmyadmin php-curl
- В процессе установки, будет задано два вопроса.
- Первым делом, нужно выбрать веб-сервер для автоматической перенастройки.
- Выбираем «Apache», и жмём на «ОК».

- Во втором вопросе, предлагается автоматическая установка и настройка базы данных для phpMyAdmin.
- Соглашаемся, и жмём на «ДА».

- По завершении установки, принудительно активируем модуль mbstring.
# phpenmod mbstring
- РhpMyAdmin установлен, но чтобы иметь к нему доступ, нужно произвести некоторые донастройки.
- В первую очередь, нужно задействовать конфигурацию phpMyAdmin, которая находится по адресу /etc/phpmyadmin/apache.conf.
- Добавляем одну строчку, в блок 443 порта конфигурационного файла сайта /etc/apache2/sites-enabled/test.conf.
Include /etc/phpmyadmin/apache.conf
- Перед тем как сделать phpMyAdmin доступным, я предлагаю ограничить доступ к нему с одного ip-адреса.
- Для этого в конфигурационном файле /etc/phpmyadmin/apache.conf, в блоке <Directory /usr/share/phpmyadmin>, нужно добавить три строчки:
Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 Allow from 192.168.1.200
В третьей строчке, вместо 192.168.1.200, нужно вписать ip-адрес, с которого Вы планируете подключаться. При такой настройке, никто кроме Вас не сможет получить доступ к phpmyadmin.
- Чтобы изменения вступили в силу, нужно перезапустить веб-сервер.
# systemctl restart apache2.service
- РhpMyAdmin доступен по адресу:
https://test.ru/phpmyadmin
Настройка ротации логов Apache в Debian 10
- В данной инструкции я использую нестандартные пути для хранения логов. Поэтому в процессе системной ротации логов, директории используемые в данной инструкции не будут затронуты.
- Чтобы настроить ротацию в наших директориях, достаточно добавить одну строчку в файл /etc/logrotate.d/apache2.
/var/www/*/log/*log

- После внесения изменений, ротация наших логов будет производится как положено.
Сегодня мы рассмотрели тему: "Установка LAMP в Debian 10". Произвели установку и настройку веб-окружения LAMP, и сопутствующих компонентов, в операционной системе Debian 10. Смотрите так же, видео по теме.
Надеюсь статья была вам полезна. До встречи в новых статьях.
✍
С уважением, Андрей Бондаренко.
Видео на тему "Установка LAMP в Debian 10":

WMZ-кошелёк = Z667041230317
«Debian»