Для тих, хто починає займатися веб-розробкою, створенням динамічних сайтів або хостингом додатків, дуже важливо мати міцну основу. Саме тут на допомогу приходить стек LEMP – абревіатура, що позначає Linux, Nginx, MySQL/MariaDB і PHP – потужна комбінація, що становить основу незліченних веб-сайтів і додатків по всьому світу.
Debian, відомий своєю стабільністю, безпекою і великими репозиторіями пакетів, залишається популярним серед розробників і адміністраторів для створення надійних серверних середовищ.
У цьому докладному посібнику ми розглянемо покроковий процес встановлення стека Nginx, PHP і MariaDB (LEMP) на Debian 12 “Bookworm”. Отже, без зайвих слів, приступимо до роботи.
Попередні умови
Перш ніж приступити до процесу встановлення, ми розповімо про попередні вимоги, щоб забезпечити вам безпроблемну роботу. До них належать доступ до сервера Debian 12, базові навички роботи з командним рядком і обліковий запис користувача з правами sudo.
Звісно, ви можете пропустити частину команд із правами sudo і виконати їх безпосередньо від імені користувача root. Результат в обох випадках буде однаковим.
Крім того, переконайтеся, що ваш брандмауер не блокує порт 80 для підключення до сервера і порт 443, якщо ви плануєте використовувати SSL.
Крок 1: Оновлення репозиторіїв програмного забезпечення
Спочатку ми скористаємося командою APT для оновлення списку доступних пакетів. Це гарантує, що під час встановлення стека LEMP на нашу систему Debian 12 будуть використовуватися тільки найновіші версії пакетів, і дозволить уникнути труднощів.
Крім того, переконайтеся, що система повністю оновлена. Якщо пакети очікують оновлення, я рекомендую застосувати їх, перш ніж рухатися далі.
sudo apt update
sudo apt upgrade
Крок 2: Встановлення веб-сервера Nginx на Debian 12
Веб-сервер дає змогу обслуговувати вміст відвідувачів, наприклад, веб-сторінки. На цьому кроці виконується друга вимога стека LEMP – веб-сервер Nginx.
Використовуйте наступні команди для встановлення останньої версії Nginx на ваш сервер Debian 12. При появі запиту введіть “Y” для підтвердження встановлення.
sudo apt install nginx
Після встановлення Nginx працюватиме на вашому сервері Debian 12. Але спочатку давайте перевіримо, чи працює він так, як очікувалося.
Відкрийте веб-браузер на вашій системі та введіть в адресний рядок IP-адресу сервера.
Вас має зустріти стандартна сторінка привітання Nginx.
Крок 3: Встановлення сервера MariaDB на Debian 12
Тепер, коли у вас є працюючий веб-сервер, необхідно встановити сервер баз даних для зберігання і управління даними на вашому сайті. У цьому посібнику замість MySQL ми встановимо MariaDB.
Це СУБД з відкритим вихідним кодом (RDBMS, Relational Database Management System), зворотно сумісна, бінарна заміна MySQL. Порівняно з MySQL, MariaDB забезпечує вищу продуктивність завдяки вищій швидкості реплікації, жорсткішим заходам безпеки та додатковим механізмам зберігання даних.
Для встановлення бази даних MariaDB виконайте наведені нижче команди і, коли з’явиться запит, підтвердіть встановлення, набравши “Y” і натиснувши “Enter”.
sudo apt install mariadb-server
3.1 Захист сервера MariaDB
Далі ми скористаємося скриптом (mysql_secure_installation), що входить до пакета “mariadb-server”, щоб обмежити доступ до сервера і видалити невикористовувані облікові записи, оскільки стандартне налаштування робить установку MariaDB небезпечною.
Запустіть сценарій захисту після встановлення.
sudo mysql_secure_installation
Після виконання наведеної вище команди з’явиться запит на введення пароля кореня MariaDB. Просто залиште пароль root порожнім і натисніть клавішу “Enter”. Для решти продовжуйте набирати “Y” і натискати “Enter”.
Пароль, заданий вище для облікового запису MariaDB root, використовується при віддаленому вході на сервер.
Для входу в систему зі встановленого нами хоста пароль вводити не потрібно, і він не буде запитуватися. Просто наберіть “sudo mysql” для доступу до оболонки MariaDB.
3.2 Тестування встановлення MariaDB
Давайте увійдемо в систему і виконаємо простий запит, щоб перевірити, чи працює сервер баз даних так, як очікувалося.
Для входу в систему введіть команду, показану нижче.
sudo mysql
Це призведе до підключення до сервера MariaDB, і повинна з’явитися оболонка MariaDB. Потім виконайте простий запит:
select version();
У відповідь на ваш запит сервер MariaDB повинен повернути свою версію. Нарешті, за допомогою команди quit вийдіть з оболонки MariaDB і поверніться в системний термінал.
Крок 4: Встановлення PHP на Debian 12
Останнім кроком для встановлення повного стека LEMP на нашу систему Debian 12 “Bookworm” є встановлення мови сценаріїв PHP. Щоб додати підтримку PHP в Nginx, необхідно встановити і використовувати PHP-FPM для виконання PHP-файлів.
Отже, щоб встановити PHP-FPM і кілька найпоширеніших модулів PHP, введіть наведену нижче команду і, коли з’явиться запит, введіть “Y”, щоб підтвердити, що ви хочете встановити його.
sudo apt install php-fpm php-mysql php-gd php-cli php-curl php-mbstring php-zip php-opcache php-xml
Наведена вище команда встановить підтримку PHP 8.2 у вашій системі Debian 12.
Крок 5: Налаштування Nginx на виконання файлів PHP
Тепер, коли ми встановили всі компоненти LEMP на систему Debian 12, нам необхідно відредагувати стандартний файл конфігурації віртуального хоста Nginx.
sudo vim /etc/nginx/sites-enabled/default
Змініть частину “location /” таким чином:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
До цього:
location / {
try_files $uri $uri/ /index.php?$args;
}
Далі додайте такі рядки в стандартний блок “server”, щоб дозволити Nginx обробляти файли PHP:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
Перевірте змінений конфігураційний файл Nginx на наявність синтаксичних помилок, ввівши таку команду:
sudo nginx -t
Якщо ви отримали вищевказаний результат, то все в порядку, і нам залишилося виконати останній крок. Однак якщо будуть видані будь-які помилки, перевірте свій файл ще раз, перш ніж продовжувати.
Нарешті, перезапустіть Nginx, щоб зміни набули чинності.
sudo systemctl restart nginx
Крок 6: Перевірка встановлення Debian 12 LEMP
Ви завершили інсталяцію Nginx, MariaDB і PHP на Debian 12, тож тепер ваш стек LEMP має бути повністю готовий до роботи.
Нарешті, давайте створимо тестовий PHP-файл, щоб перевірити, що PHP-FPM працює та інтегрований з Nginx. У наведеному вище блоці сервера за замовчуванням наш сайт обслуговується з “/var/www/html”, тому ми створимо тестовий файл там:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/test.php
Тепер до файлу “test.php” можна звернутися з браузера, використовуючи домен сайту або IP-адресу сервера, а потім “/test.php”.
З’явиться веб-сторінка з повною інформацією про встановлення PHP.
Вітаємо! Ви успішно встановили повнофункціональний стек LEMP на Debian 12.
Висновок
Ми завершуємо цю подорож, і тепер у вас є все необхідне для встановлення, конфігурування та використання потенціалу стека LEMP. Ба більше, використовуючи Debian 12 “Bookworm” як серверну платформу, ви скористалися міцним фундаментом, відомим своєю стабільністю, безпекою та зручністю для користувачів.