Що таке стеки LAMP і LEMP?
LAMP і LEMP називають чотири частини програмного забезпечення, що обслуговують типовий сайт: Linux, вебсервер, базу даних і PHP. A у LAMP означає Apache, а E у LEMP — Nginx (читається «енджин-ікс», звідси E). В обох стеках база даних — MySQL або MariaDB, а мова програмування — PHP.
На цьому стеку працюють застосунки PHP, як-от WordPress, WooCommerce і Joomla. WordPress.org рекомендує як вебсервер Apache або Nginx, тож обидва — надійна основа. Вибір не вирішує, чи працюватиме ваш застосунок. Він змінює лише те, як ви пишете налаштування.
Як працює стек?
| Шар | LAMP | LEMP | Роль |
|---|---|---|---|
| Операційна система | Linux | Linux | Основа, на якій усе працює |
| Вебсервер | Apache | Nginx | Відповідає на запити браузерів |
| База даних | MySQL або MariaDB | MySQL або MariaDB | Зберігає записи, користувачів і замовлення |
| Мова | PHP | PHP, через PHP-FPM | Будує сторінку |
Запит проходить стеком так:
- Браузер надсилає запит на ваш домен. Він потрапляє на порт 80 або 443 вашого сервера.
- Вебсервер приймає запит. Якщо запит стосується зображення чи файлу CSS, він віддає файл сам.
- Якщо запит стосується файлу PHP, вебсервер передає його PHP, і PHP виконує код.
- 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, тож замініть його на своє.
- Оновіть список пакетів:
sudo apt update - Установіть пакети:
sudo apt install nginx mariadb-server php-fpm php-mysql. Установлюються версії з репозиторію пакетів. - Посильте захист бази даних:
sudo mariadb-secure-installation. Відповідайте «так» на видалення анонімних користувачів, видалення тестової бази даних і заборону віддаленого входу root. - Створіть папку сайту:
sudo mkdir -p /var/www/example - Відкрийте файл командою
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; } } ls /run/php/показує справжню назву сокета. Запишіть її замістьphpX.Y-fpm.sock.- Увімкніть сайт:
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/ - Перевірте й застосуйте конфігурацію:
sudo nginx -t, а потімsudo systemctl reload nginx - Якщо ви користуєтеся 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 хвилин, а адреса й пароль з’являються в панелі.
Коментарі0
Коментарів поки немає
Поділіться своєю думкою першим.
Будь ласка, увійдіть або зареєструйтеся, щоб залишити коментар.