15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
07.10.2024

Що таке LAMP Stack? Архітектура, компоненти та посібник з розгортання у виробничому середовищі

Стек LAMP — це перевірений набір програмного забезпечення з відкритим вихідним кодом, що складається з Linux (операційна система), Apache (веб-сервер), MySQL (реляційна база даних) та PHP (серверна мова сценаріїв). Разом ці чотири рівні утворюють повне, самодостатнє середовище для створення, розгортання та обслуговування динамічних веб-застосунків. Абревіатура описує як технологічний стек, так і послідовний конвеєр обробки запитів, у якому бере участь кожен рівень.

Для будь-якого розробника або системного адміністратора, який оцінює інфраструктуру веб-хостингу, LAMP залишається домінуючим базовим рішенням: він лежить в основі понад 30% усіх серверних розгортань у світі, забезпечує роботу таких платформ, як WordPress, Drupal і Magento, і є стандартним цільовим середовищем для тисяч PHP-фреймворків і бібліотек. Розуміння його внутрішньої будови — а не лише компонентів — відрізняє функціональне розгортання від захищеної, високопродуктивної виробничої системи.

Чотири рівні стека LAMP: технічний огляд

Linux: базовий рівень

Linux — це ядро операційної системи та середовище простору користувача, на якому виконується кожен інший компонент LAMP. Його роль не є пасивною: Linux керує плануванням процесів, розподілом пам’яті, файловим введенням/виведенням, поведінкою мережевого стека та політиками безпеки, які безпосередньо впливають на кожен інший рівень.

Ключові технічні міркування для розгортань LAMP:

  • Вибір дистрибутива має значення. Ubuntu LTS і Debian є кращими завдяки тривалим циклам підтримки та розширеним репозиторіям пакетів. RHEL/AlmaLinux/Rocky Linux є кращими в корпоративних середовищах, що вимагають застосування SELinux.
  • Налаштування ядра — зокрема `vm.swappiness`, `net.core.somaxconn` та `fs.file-max` — має відчутний вплив на здатність Apache обробляти одночасні з’єднання під навантаженням.
  • Посилення безпеки на рівні ОС (вимкнення невикористовуваних служб, налаштування `iptables` або `nftables`, увімкнення `fail2ban`) є обов’язковою умовою, а не другорядним завданням, перед тим як відкрити будь-який веб-стек для інтернету.
  • Вибір файлової системи впливає на продуктивність бази даних. XFS та ext4 з параметрами монтування `noatime` зменшують непотрібні записи на диск, що є критично важливим, коли MySQL виконує часті дрібні операції введення/виведення.

При запуску LAMP у середовищі VPS Хостинг ви зберігаєте повний root-доступ для налаштування всіх цих параметрів — те, що спільні середовища принципово не можуть забезпечити.

Apache: рівень веб-сервера

Apache HTTP Server (httpd) — це рушій обробки запитів. Він прослуховує TCP-порти 80 і 443, аналізує вхідні HTTP/HTTPS-запити та або безпосередньо обслуговує статичні файли з диска, або передає динамічні запити інтерпретатору PHP.

Критичні архітектурні деталі, які більшість посібників не згадує:

  • Вибір MPM (Multi-Processing Module) є одним із найважливіших рішень при розгортанні Apache. Три варіанти — `prefork`, `worker` та `event` — мають принципово різні моделі паралелізму:
  • `prefork`: один процес на з’єднання. Сумісний з `mod_php`, але потребує багато пам’яті. Уникайте на серверах з високим паралелізмом.
  • `worker`: багатопотоковий. Ефективніший, але вимагає потокобезпечних розширень PHP.
  • `event`: сучасний стандарт. Обробляє keep-alive з’єднання у виділеному потоці, звільняючи робочі потоки для активних запитів. Найкращий для розгортань з високим трафіком.
  • `mod_php` проти PHP-FPM: запуск PHP як модуля Apache (`mod_php`) простіший, але пов’язує життєвий цикл процесу PHP з Apache. Використання PHP-FPM (FastCGI Process Manager) через `mod_proxy_fcgi` розв’язує їх, дозволяючи незалежне налаштування пулу процесів, ізоляцію версій PHP для кожного віртуального хоста та значно кращу ефективність використання пам’яті.
  • Файли `.htaccess` зручні, але витратні: Apache перечитує їх при кожному запиті для каталогів, які дозволяють перевизначення. У виробничому середовищі консолідуйте правила в блоки `<Directory>` в основній конфігурації та встановлюйте `AllowOverride None` де це можливо.
  • Віртуальний хостинг дозволяє одному екземпляру Apache обслуговувати десятки різних доменів, кожен з ізольованими кореневими каталогами документів, SSL-сертифікатами та конфігураціями журналювання.

MySQL: рівень даних

MySQL — це система управління реляційними базами даних (RDBMS), яка зберігає, індексує та отримує структуровані дані застосунків за допомогою SQL. У контексті LAMP PHP-скрипти підключаються до MySQL через розширення PDO або MySQLi для виконання запитів, а MySQL повертає набори результатів, які PHP потім форматує в HTML або JSON.

Критично важливі знання MySQL для виробничого середовища:

  • Вибір рушія зберігання: InnoDB є стандартним і правильним вибором практично для всіх робочих навантажень LAMP. Він забезпечує ACID-сумісні транзакції, блокування на рівні рядків і обмеження зовнішніх ключів. MyISAM не підтримує транзакції та використовує блокування на рівні таблиць — уникайте його для нових таблиць.
  • `innodb_buffer_pool_size` є найважливішим параметром конфігурації MySQL. Його слід встановити на рівні 70–80% доступної RAM на виділеному сервері бази даних. Недостатній розмір змушує MySQL читати з диска замість пам’яті, що призводить до різкого падіння продуктивності запитів.
  • MariaDB — це повністю сумісна заміна MySQL, яку підтримують оригінальні розробники MySQL після придбання Oracle. Вона пропонує покращення продуктивності для певних робочих навантажень (особливо складних об’єднань і реплікації) і є стандартною реалізацією MySQL у багатьох дистрибутивах Linux.
  • Пул з’єднань: постійні з’єднання PHP (`PDO::ATTR_PERSISTENT`) або зовнішній пулер, наприклад ProxySQL, зменшують накладні витрати на встановлення нового TCP-з’єднання та рукостискання автентифікації при кожному PHP-запиті.
  • Стратегія індексування: відсутні індекси для часто запитуваних стовпців (особливо в реченнях `WHERE`, `JOIN` та `ORDER BY`) є найпоширенішою причиною деградації продуктивності застосунків LAMP. Використовуйте `EXPLAIN` для аудиту планів виконання запитів.

PHP: рівень логіки застосунку

PHP (PHP: Hypertext Preprocessor) — це серверна мова сценаріїв, яка генерує динамічний контент. Вона отримує керування від Apache (через `mod_php` або PHP-FPM), виконує логіку застосунку, запитує MySQL і повертає HTML, JSON або інші дані Apache для доставки клієнту.

Технічні нюанси, які варто знати:

  • Версія PHP має критичне значення. PHP 7.4 досяг кінця терміну підтримки в листопаді 2022 року. PHP 8.0 і 8.1 також є EOL. Виробничі системи повинні працювати на PHP 8.2 або 8.3, які включають JIT-компіляцію, іменовані аргументи, файбери та значні покращення продуктивності порівняно з PHP 7.x.
  • OPcache — це кеш байт-коду, вбудований у PHP. При увімкненні він компілює PHP-скрипти в байт-код при першому виконанні та зберігає результат у спільній пам’яті, усуваючи повторну компіляцію при наступних запитах. Увімкнення OPcache з відповідними налаштуваннями `opcache.memory_consumption` та `opcache.max_accelerated_files` може скоротити час виконання PHP на 30–70%.
  • Конфігурація пулу PHP-FPM: директива `pm` контролює управління робочими процесами. `pm = dynamic` підходить для більшості робочих навантажень; `pm = ondemand` економить пам’ять на серверах з низьким трафіком; `pm = static` забезпечує передбачуваний розподіл ресурсів для застосунків з високим трафіком.
  • Екосистема фреймворків: Laravel, Symfony, CodeIgniter та Slim є домінуючими PHP-фреймворками. Laravel зокрема став де-факто стандартом для нової розробки PHP-застосунків, пропонуючи ORM (Eloquent), систему черг та інструменти CLI (Artisan), які значно прискорюють розробку.
  • «P» є гнучким: хоча PHP є стандартом, остання літера абревіатури LAMP може представляти Perl (поширений у застарілих CGI-застосунках та біоінформатичних інструментах) або Python (через `mod_wsgi` або WSGI-сумісний проксі), хоча стеки з переважанням Python частіше використовують LEMP (Nginx) або виділені WSGI-сервери.

Як стек LAMP обробляє запит: повний конвеєр

Розуміння життєвого циклу запиту є необхідним для діагностики вузьких місць продуктивності та вразливостей безпеки.

  1. DNS-розпізнавання: клієнт розпізнає доменне ім’я до IP-адреси сервера. TTL та кешування резолвера впливають на сприйняту затримку на цьому етапі.
  2. TCP-рукостискання + TLS-узгодження: для HTTPS TLS-рукостискання відбувається до обміну будь-якими HTTP-даними. Тут відбуваються перевірка сертифіката, узгодження набору шифрів і відновлення сесії.
  3. Apache отримує HTTP-запит: MPM `event` Apache призначає запит робочому потоку. Apache аналізує заголовки запиту, застосовує правила `mod_rewrite`, перевіряє `.htaccess` (якщо увімкнено) та визначає, чи обслуговувати статичний файл, чи викликати PHP.
  4. Виконання PHP: для динамічних запитів Apache передає запит до PHP-FPM через FastCGI. PHP-FPM вибирає доступний робочий процес зі свого пулу, завантажує скрипт (з OPcache, якщо доступно) і починає виконання логіки застосунку.
  5. Виконання запиту MySQL: PHP-застосунок формує та виконує SQL-запити через PDO. MySQL перевіряє кеш запитів (застарілий у MySQL 8.0), аналізує запит, використовує оптимізатор для вибору плану виконання, отримує дані з буферного пулу InnoDB або диска та повертає набір результатів.
  6. Збірка відповіді: PHP збирає кінцевий HTML або JSON-вивід, потенційно застосовуючи рендеринг шаблонів, серіалізацію або стиснення.
  7. Apache доставляє відповідь: Apache застосовує будь-які вихідні фільтри (наприклад, `mod_deflate` для gzip-стиснення), встановлює заголовки відповіді (cache-control, content-type, заголовки безпеки) та передає відповідь через встановлене TCP-з’єднання.

LAMP проти LEMP проти MEAN: порівняння архітектур

ФункціяLAMPLEMPMEAN
Веб-серверApacheNginxNode.js (вбудований)
База данихMySQL / MariaDBMySQL / MariaDBMongoDB
МоваPHP (або Perl/Python)PHP через PHP-FPMJavaScript (Node.js)
Модель паралелізмуНа основі процесів/потоківПодієво-орієнтована, асинхроннаПодієво-орієнтована, асинхронна
Обслуговування статичних файлівДобреВідмінноПомірно
Сумісність з PHPНативнаЧерез FastCGI (PHP-FPM)Не застосовується
Споживання пам’ятіВід помірного до високогоВід низького до помірногоПомірне
Складність конфігураціїПомірнаПомірнаВища
Найкраще дляCMS, застарілі PHP-застосунки, WordPressPHP-застосунки з високим трафіком, APIЗастосунки реального часу, SPA
Поріг входженняНизькийВід низького до помірногоВід помірного до високого

Ключовий висновок: LEMP (Linux, Nginx, MySQL, PHP) — це не заміна LAMP, а варіант, оптимізований для обслуговування статичних файлів з високим паралелізмом та ефективного використання пам’яті. Подієво-орієнтована архітектура Nginx обробляє тисячі одночасних keep-alive з’єднань, витрачаючи лише частку пам’яті, яку вимагає MPM `prefork` Apache. Однак підтримка `.htaccess` та гнучкість `mod_rewrite` Apache роблять його прагматичним вибором для розгортань у стилі спільного хостингу та застосунків, які значною мірою покладаються на конфігурацію для кожного каталогу.

Основні випадки використання стеків LAMP

Системи управління контентом

WordPress, Joomla та Drupal створені спеціально для стека LAMP. Лише WordPress забезпечує роботу понад 43% усіх веб-сайтів у світі, а вся його екосистема плагінів (60 000+ плагінів) передбачає середовище LAMP. Запуск WordPress на будь-чому, крім стека LAMP або LEMP, створює ризики сумісності з плагінами, які використовують прямі MySQL-запити або правила перезапису, специфічні для Apache.

Застосунки електронної комерції

Magento (Adobe Commerce), WooCommerce та OpenCart орієнтовані на LAMP. Робочі навантаження електронної комерції є особливо вимогливими: вони потребують ACID-сумісних транзакцій (InnoDB), управління сесіями, складних багатотабличних об’єднань для запитів каталогу продуктів та надійного завершення SSL. Належним чином налаштоване середовище Виділені сервери зі сховищем NVMe забезпечує пропускну здатність введення/виведення, якої вимагають ці робочі навантаження.

RESTful та GraphQL API

PHP-фреймворки, такі як Laravel і Lumen, відмінно підходять для створення API-бекендів. Сервер API на основі LAMP, що обробляє JSON через HTTP, є поширеною архітектурою для бекендів мобільних застосунків, SaaS-платформ та компонентів мікросервісів. Модель пулу процесів PHP-FPM забезпечує природну ізоляцію запитів, а тип стовпця JSON у MySQL (доступний починаючи з MySQL 5.7) дозволяє зберігати напівструктуровані дані без відмови від реляційної цілісності.

Підтримка застарілих застосунків

Значна частина корпоративної веб-інфраструктури працює на кодових базах PHP 5.x або 7.x, які не можна тривіально мігрувати. LAMP залишається єдиним придатним середовищем виконання для цих застосунків. Контейнеризація застарілих стеків LAMP за допомогою Docker (з базовими образами `php:7.4-apache`) забезпечує ізоляцію та портативність без необхідності змін у коді.

Середовища розробки та тестування

LAMP є стандартним локальним середовищем розробки для PHP-розробників, яке зазвичай розгортається через Docker Compose, Vagrant або такі інструменти, як XAMPP і Laragon. Відтворення виробничої конфігурації LAMP у розробці запобігає класу помилок розгортання «працює на моїй машині».

Посилення безпеки для виробничих розгортань LAMP

Стандартна установка LAMP не готова до виробничого використання. Наступні кроки з посилення безпеки є обов’язковими:

Рівень операційної системи

  • Вимкніть вхід root через SSH; застосовуйте лише автентифікацію на основі ключів
  • Налаштуйте `ufw` або `firewalld` для дозволу лише портів 22, 80 та 443
  • Увімкніть автоматичні оновлення безпеки для пакетів ОС
  • Встановіть та налаштуйте `fail2ban` для блокування спроб підбору паролів проти SSH та веб-застосунків

Рівень Apache

  • Встановіть `ServerTokens Prod` та `ServerSignature Off` для приховування інформації про версію
  • Вимкніть перегляд каталогів (`Options -Indexes`)
  • Додайте заголовки безпеки: `X-Content-Type-Options`, `X-Frame-Options`, `Content-Security-Policy`, `Strict-Transport-Security`
  • Застосовуйте HTTPS з дійсним SSL-сертифікатом — встановлення SSL-сертифікатів є обов’язковим для будь-якого виробничого розгортання

Рівень MySQL

  • Запустіть `mysql_secure_installation` одразу після встановлення
  • Створюйте специфічних для застосунку користувачів бази даних з мінімально необхідними привілеями — ніколи не використовуйте `root` для з’єднань застосунку
  • Прив’яжіть MySQL до `127.0.0.1`, якщо віддалений доступ явно не потрібен
  • Увімкніть бінарне журналювання для можливості відновлення до певного моменту часу

Рівень PHP

  • Встановіть `expose_php = Off` у `php.ini`
  • Вимкніть небезпечні функції: `exec`, `passthru`, `shell_exec`, `system`, якщо вони явно не потрібні
  • Встановіть `display_errors = Off` та `log_errors = On` у виробничому середовищі
  • Налаштуйте `open_basedir` для обмеження доступу PHP до каталогу застосунку
  • Підтримуйте PHP оновленим до поточного підтримуваного випуску

Стратегії оптимізації продуктивності

Архітектура кешування

Виробничий стек LAMP без рівня кешування залишає значний потенціал продуктивності невикористаним:

  • OPcache: увімкніть на рівні PHP. Це найбільш ефективна одиночна зміна для продуктивності PHP.
  • Кешування об’єктів: Redis або Memcached як сховище ключ-значення в пам’яті для результатів запитів до бази даних, даних сесій та обчислених значень. WordPress з кешем об’єктів Redis може скоротити кількість MySQL-запитів на 80%+ для кешованих сторінок.
  • Кешування повних сторінок: Varnish Cache перед Apache може обслуговувати кешовані HTML-відповіді без виклику PHP або MySQL взагалі, обробляючи десятки тисяч запитів на секунду на скромному обладнанні.
  • Apache `mod_cache`: для простіших налаштувань вбудований модуль кешування Apache може кешувати статичний та динамічний контент з налаштовуваними TTL.

Оптимізація запитів до бази даних

  • Увімкніть журнал повільних запитів (`slow_query_log = 1`, `long_query_time = 1`) та регулярно перевіряйте його за допомогою `mysqldumpslow` або `pt-query-digest`
  • Використовуйте `EXPLAIN ANALYZE` для розуміння планів виконання запитів перед розгортанням змін схеми
  • Впроваджуйте репліки для читання для робочих навантажень з переважанням читання, щоб розподілити навантаження запитів між кількома екземплярами MySQL

Налаштування Apache

  • Увімкніть `mod_deflate` для gzip-стиснення текстових відповідей (HTML, CSS, JavaScript, JSON)
  • Налаштуйте заголовки `mod_expires` та `Cache-Control` для статичних ресурсів для використання кешування браузера
  • Налаштуйте `MaxRequestWorkers`, `ServerLimit` та `ThreadsPerChild` на основі доступної RAM та очікуваного паралелізму

Розгортання стека LAMP: виробничий контрольний список

Перед запуском розгортання LAMP на VPS з cPanel або звичайному Linux VPS перевірте наступне:

  • ОС Linux повністю оновлена; налаштовано автоматичні оновлення безпеки
  • Apache працює з MPM `event` та PHP-FPM (не `mod_php`)
  • Версія PHP — 8.2 або 8.3; OPcache увімкнено та налаштовано
  • MySQL використовує виключно InnoDB; `innodb_buffer_pool_size` налаштовано відповідно до доступної RAM
  • Усі з’єднання застосунку з базою даних використовують виділеного MySQL-користувача з мінімальними привілеями
  • HTTPS застосовується з дійсним сертифікатом; HTTP перенаправляється на HTTPS
  • Заголовки безпеки присутні в конфігурації Apache
  • `fail2ban` активний та відстежує журнали доступу Apache
  • Правила брандмауера дозволяють лише необхідні порти
  • Автоматичне резервне копіювання бази даних заплановано та перевірено
  • Журналювання помилок застосунку налаштовано для запису у файл, а не у вивід браузера

Коли LAMP не є правильним вибором

LAMP не є універсально оптимальним. Розпізнайте ці сценарії, де більш доречні альтернативні архітектури:

  • Двостороннє спілкування в реальному часі (чат, живі панелі моніторингу, спільне редагування): Node.js з підтримкою WebSocket або сервери на основі Go підходять краще. Синхронна модель виконання PHP та життєвий цикл процесу для кожного запиту принципово несумісні з обробкою постійних з’єднань.
  • Доставка статичного контенту з надзвичайно високим паралелізмом: CDN або Nginx, що обслуговує статичні файли, перевершить Apache при частці витрат ресурсів.
  • Висновок машинного навчання або робочі навантаження з прискоренням GPU: стеки на основі Python з виділеною інфраструктурою GPU Хостинг є правильною архітектурою.
  • Мікросервіси з поліглотним збереженням даних: якщо ваша архітектура вимагає кількох типів баз даних (документних, графових, часових рядів), MySQL-центрична модель стека LAMP стає обмеженням, а не перевагою.
  • Безсерверні або крайові обчислення: PHP може працювати в безсерверних середовищах (AWS Lambda через Bref, Cloudflare Workers через експериментальні середовища виконання), але операційна модель принципово відрізняється від традиційного сервера LAMP.

Матриця рішень: чи підходить LAMP для вашого проекту?

ВимогаLAMP підходитьРозгляньте альтернативу
PHP-базована CMS (WordPress, Drupal)ТакНі
Функції реального часу з високим паралелізмомНіNode.js, Go
RESTful API з PHP-фреймворкомТакНі
Робочі навантаження GPU/MLНіPython + GPU стек
Підтримка застарілого PHP 5.x/7.xТакНі
Статичний сайт без бекенд-логікиНіCDN + статичний хостинг
Електронна комерція (WooCommerce, Magento)ТакНі
Мікросервіси з поліглотною БДЧастковоКонтейнеризовані сервіси
Малий проект з обмеженим бюджетомТакНі

Практичні ключові висновки

  • MPM та PHP-FPM — це не необов’язкові оптимізації — це різниця між розгортанням рівня розробки та виробничого рівня Apache. Перейдіть з `prefork`+`mod_php` на `event`+`PHP-FPM` до того, як на сервер надійде будь-який трафік.
  • OPcache — це безкоштовна продуктивність. Немає жодної вагомої причини запускати PHP у виробничому середовищі без його увімкнення та належного налаштування розміру.
  • `innodb_buffer_pool_size` — це найбільш ефективна одиночна зміна конфігурації MySQL. Встановіть її до розгортання будь-якого застосунку.
  • MariaDB є законною, часто кращою альтернативою MySQL для стеків LAMP. Оцінюйте її як стандарт, а не як другорядний варіант.
  • Посилення безпеки — це не завдання після запуску. Стандартна установка LAMP, відкрита для інтернету, буде перевірена на вразливості протягом хвилин після запуску.
  • Кешування — це архітектура, а не оптимізація. Розробіть стратегію кешування вашого застосунку (OPcache, Redis, Varnish) до написання першого рядка коду застосунку.
  • Для виробничих робочих навантажень, що вимагають повного контролю над усіма цими параметрами, середовище VPS Хостинг з root-доступом є мінімальною необхідною інфраструктурою — спільний хостинг не може надати поверхню конфігурації, яку вимагає належним чином налаштований стек LAMP.

Часті запитання

У чому різниця між стеками LAMP і LEMP?

LAMP використовує Apache як веб-сервер, тоді як LEMP замінює Apache на Nginx. Nginx використовує подієво-орієнтовану, асинхронну архітектуру, яка споживає менше пам’яті при високому паралелізмі та відмінно обслуговує статичні файли. Перевага Apache полягає в його зрілій системі `.htaccess` та ширшій екосистемі модулів, що робить його стандартним вибором для WordPress та інших CMS-платформ, які покладаються на конфігурацію для кожного каталогу.

Чи варто використовувати MySQL або MariaDB у стеку LAMP?

MariaDB є бінарно-сумісною заміною MySQL, яку підтримують оригінальні розробники MySQL. Вона пропонує покращення продуктивності для певних робочих навантажень, більш відкриту розробку та є стандартною реалізацією MySQL на Debian та Ubuntu. Для нових розгортань MariaDB є розумним стандартним вибором. Існуючі розгортання MySQL не потребують міграції, якщо не потрібні специфічні функції MariaDB.

Яку версію PHP слід використовувати у стеку LAMP у 2025 році?

PHP 8.2 або 8.3 є поточними підтримуваними, активно підтримуваними випусками. PHP 8.3 включає покращення продуктивності, типізовані константи класів та покращену обробку помилок. Будь-яка версія нижче 8.1 є EOL і не отримує патчів безпеки — запуск EOL-версій PHP на загальнодоступному сервері є критичним ризиком безпеки.

Чи можна запускати кілька версій PHP на одному сервері LAMP?

Так. Використовуючи PHP-FPM, ви можете одночасно запускати кілька пулів PHP-FPM, кожен прив’язаний до різного сокета та запускаючий різну версію PHP. Потім віртуальні хости Apache налаштовуються для проксіювання до відповідного сокета PHP-FPM. Це стандартний підхід для хостингу кількох застосунків з різними вимогами до версії PHP на одному сервері.

Чи підходить LAMP для виробничих застосунків з високим трафіком?

Так, при належному налаштуванні. Комбінація PHP-FPM з OPcache, кешування об’єктів Redis, MySQL з правильно налаштованим буферним пулом InnoDB та кеш повних сторінок, як-от Varnish, може витримувати десятки тисяч запитів на секунду на відповідно підготовленому обладнанні. Вузьким місцем у більшості розгортань LAMP є не сам стек, а неправильна конфігурація — зокрема відсутні рівні кешування, неіндексовані запити до бази даних та Apache, що працює з MPM `prefork`.

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати