Блог

Інструкції, посібники й новини про продукт.

Розробникам

Що таке стеки LAMP і LEMP?

3 листопада 2026 5 хв читання
Поділитися записом

LAMP і LEMP називають чотири частини програмного забезпечення, що обслуговують типовий сайт: Linux, вебсервер, базу даних і PHP. A у LAMP означає Apache, а E у LEMP — Nginx (читається «енджин-ікс», звідси E). В обох стеках база даних — MySQL або MariaDB, а мова програмування — PHP.

На цьому стеку працюють застосунки PHP, як-от WordPress, WooCommerce і Joomla. WordPress.org рекомендує як вебсервер Apache або Nginx, тож обидва — надійна основа. Вибір не вирішує, чи працюватиме ваш застосунок. Він змінює лише те, як ви пишете налаштування.

Як працює стек?

ШарLAMPLEMPРоль
Операційна системаLinuxLinuxОснова, на якій усе працює
ВебсерверApacheNginxВідповідає на запити браузерів
База данихMySQL або MariaDBMySQL або MariaDBЗберігає записи, користувачів і замовлення
МоваPHPPHP, через PHP-FPMБудує сторінку

Запит проходить стеком так:

  1. Браузер надсилає запит на ваш домен. Він потрапляє на порт 80 або 443 вашого сервера.
  2. Вебсервер приймає запит. Якщо запит стосується зображення чи файлу CSS, він віддає файл сам.
  3. Якщо запит стосується файлу PHP, вебсервер передає його PHP, і PHP виконує код.
  4. PHP за потреби звертається до бази даних і будує сторінку. Вебсервер надсилає сторінку назад у браузер.

Якщо сторінка не відкривається, перевіряйте шари по черзі: systemctl status nginx, systemctl status phpX.Y-fpm і systemctl status mariadb. X.Y — це ваша версія PHP (8.3 в Ubuntu 24.04), а в LAMP замість nginx використовують apache2. Проблема починається там, де служба не працює.

У чому різниця між LAMP і LEMP?

  • Apache читає файли .htaccess, а Nginx — ні. В Nginx правила записують у конфігурацію сервера.
  • Nginx не виконує PHP усередині себе. Він передає запити окремій службі PHP-FPM. Apache може виконувати PHP усередині себе або через PHP-FPM.
  • Папки конфігурації різні. В Ubuntu Apache використовує /etc/apache2, а Nginx — /etc/nginx.
  • Використання пам’яті визначається радше кількістю робочих процесів PHP-FPM і налаштуваннями бази даних, ніж вибором вебсервера.
  • Жоден із них явно не кращий. Обидва широко використовуються, тож вирішують посібник, за яким ви йдете, і ваші звички.

MySQL чи MariaDB?

MariaDB — це база даних із відкритим кодом, що відгалузилася від MySQL, а їхні команди й клієнти здебільшого сумісні. Офіційна сторінка вимог WordPress приймає обидві, тож актуальні мінімальні версії дивіться там. В Ubuntu пакет mariadb-server встановлюється однією командою. За документацією MariaDB, акаунт root з версії 10.4 типово використовує автентифікацію unix_socket. На сервері просто виконайте sudo mariadb. Пароль root не потрібен.

Налаштування LEMP в Ubuntu

Ці кроки — для Ubuntu і Debian. Спершу підключіться до сервера через SSH. У прикладах як доменне ім’я використано example.com, тож замініть його на своє.

  1. Оновіть список пакетів: sudo apt update
  2. Установіть пакети: sudo apt install nginx mariadb-server php-fpm php-mysql. Установлюються версії з репозиторію пакетів.
  3. Посильте захист бази даних: sudo mariadb-secure-installation. Відповідайте «так» на видалення анонімних користувачів, видалення тестової бази даних і заборону віддаленого входу root.
  4. Створіть папку сайту: sudo mkdir -p /var/www/example
  5. Відкрийте файл командою sudo nano /etc/nginx/sites-available/example і вставте цей рядок: server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } }
  6. ls /run/php/ показує справжню назву сокета. Запишіть її замість phpX.Y-fpm.sock.
  7. Увімкніть сайт: sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/
  8. Перевірте й застосуйте конфігурацію: sudo nginx -t, а потім sudo systemctl reload nginx
  9. Якщо ви користуєтеся ufw, відкрийте порти 80 і 443: sudo ufw allow 80/tcp і sudo ufw allow 443/tcp. Переконайтеся, що порт SSH (22) відкритий.

Щоб перевірити, чи працює PHP, запишіть тестовий файл:

echo '<?php phpinfo();' | sudo tee /var/www/example/info.php

Якщо домен ще не вказує на сервер, перевірте зсередини сервера командою curl -H 'Host: example.com' http://127.0.0.1/info.php. Щойно побачите, що все працює, видаліть файл: sudo rm /var/www/example/info.php. Ця сторінка показує дані вашого сервера кожному.

База даних для вашого застосунку

Відкрийте оболонку бази даних командою sudo mariadb і створіть окрему базу даних та користувача для кожного застосунку. Надійний пароль виберіть самі:

CREATE DATABASE exampledb CHARACTER SET utf8mb4;

CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';

GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';

Ці три значення (база даних, користувач, пароль) ви вводите на екрані налаштування WordPress. Щоб працювали постійні посилання WordPress, замініть у рядку Nginx =404 на /index.php?$args.

Що змінюється для LAMP?

Для стеку Apache пакети встановлюють так:

sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql

Сайт описують у /etc/apache2/sites-available і вмикають командою sudo a2ensite example. Для постійних посилань виконайте sudo a2enmod rewrite і перезапустіть Apache командою sudo systemctl restart apache2. Щоб файли .htaccess набули чинності, для папки сайту потрібно задати AllowOverride All. Apache можна також запускати з PHP-FPM, що пасує до керованої подіями моделі event. Кроки з базою даних такі самі, як для LEMP.

Після встановлення

  • Додайте сертифікат HTTPS. Let's Encrypt безплатний, а Certbot працює і з Nginx, і з Apache.
  • Задайте власника папок, до яких вебсервер має записувати. В Ubuntu і Debian вебсервер працює від імені користувача www-data: sudo chown -R www-data:www-data /var/www/example.
  • Регулярно встановлюйте оновлення командою sudo apt update && sudo apt upgrade. Після встановлення оновлення операційної системи та програмного забезпечення — на вашому боці.
  • Робіть резервну копію бази даних окремо через mariadb-dump. Щоденна резервна копія сервера входить у ціну, але важливі дані все одно варто додатково зберігати самостійно.

Якщо ви хочете мати стек одразу готовим, замовляйте з варіантом Seturack LAMP або LEMP, і він встановиться сам. Якщо вам потрібен лише WordPress, достатньо варіанта WordPress VPS: налаштування займає близько 4-5 хвилин, а адреса й пароль з’являються в панелі.

Готове до роботи в Seturack: LAMP, LEMP.

Коментарі0

Коментарів поки немає

Поділіться своєю думкою першим.

Долучайтеся до обговорення

Будь ласка, увійдіть або зареєструйтеся, щоб залишити коментар.

Не пропускайте нові записи

Отримуйте наші свіжі інструкції, посібники та новини продукту на пошту.

Ви підписалися на нашу розсилку.