// SSD VPS

Как установить и настроить LAMP на VPS Linux: полное руководство — CLIQHOST

14 ноября 2026 г. · by Alex M.

Как установить и настроить LAMP на VPS Linux: полное руководство — CLIQHOST

Стек LAMP (Linux, Apache, MySQL, PHP) остаётся одной из самых популярных комбинаций технологий для хостинга веб-приложений. От WordPress и Joomla до кастомных PHP-приложений — LAMP предоставляет стабильную, хорошо задокументированную и гибкую основу.

В этом руководстве вы научитесь полностью устанавливать и настраивать стек LAMP на VPS SSD с Ubuntu 22.04, шаг за шагом, с реальными командами и советами по оптимизации.


Что такое стек LAMP и зачем его использовать?

LAMP — это аббревиатура:

  • Linux — операционная система (Ubuntu, Debian, CentOS и др.)
  • Apache — веб-сервер, обрабатывающий HTTP-запросы
  • MySQL / MariaDB — реляционная база данных
  • PHP — серверный язык программирования

Эта комбинация используется миллионами сайтов и веб-приложений по всему миру. Основные преимущества:

  • Open-source — все компоненты бесплатны
  • Огромная экосистема — документация, туториалы и большое сообщество
  • Совместимость — поддерживает WordPress, Joomla, Drupal, Laravel и многое другое
  • Гибкость — каждый компонент можно заменить или расширить

Если вы хотите запустить PHP-приложение в продакшене без overhead'а хостинг-панели, VPS NVMe с вручную настроенным стеком LAMP — идеальное решение.


Предварительные требования

Перед началом убедитесь, что у вас есть:

  • VPS с Ubuntu 22.04 LTS (рекомендуется)
  • SSH-доступ с правами root или пользователя sudo
  • Доменное имя или публичный IP-адрес
  • Базовые знания командной строки Linux

Если у вас ещё нет сервера, вы можете быстро заказать VPS SSD у CLIQHOST и получить его активным через несколько минут.


Шаг 1: Обновление системы

Перед любой установкой обновите список пакетов и существующую систему:

sudo apt update && sudo apt upgrade -y

Перезагрузите сервер при наличии обновлений ядра:

sudo reboot

Шаг 2: Установка Apache

Apache — веб-сервер, который будет обрабатывать HTTP-запросы и отдавать файлы вашего приложения.

Установка

sudo apt install apache2 -y

Запуск и включение автозапуска

sudo systemctl start apache2
sudo systemctl enable apache2

Проверка статуса

sudo systemctl status apache2

Если всё работает корректно, вы увидите active (running) в выводе команды.

Настройка фаервола

Разрешите HTTP и HTTPS трафик через UFW:

sudo ufw allow 'Apache Full'
sudo ufw enable
sudo ufw status

Теперь, если вы откроете IP-адрес сервера в браузере, увидите страницу по умолчанию Apache: «Apache2 Ubuntu Default Page».

💡 Совет: Вы можете отключить стандартную страницу Apache командой sudo a2dissite 000-default.conf после настройки собственного VirtualHost.


Шаг 3: Установка MySQL

MySQL будет управлять базами данных для ваших веб-приложений.

Установка

sudo apt install mysql-server -y

Защита установки

Запустите скрипт безопасности MySQL:

sudo mysql_secure_installation

Вас проведут через ряд вопросов:

  • Validate Password Plugin — рекомендуется Y (включает проверку паролей)
  • Remove anonymous users — Y
  • Disallow root login remotely — Y (важно для безопасности)
  • Remove test database — Y
  • Reload privilege tables — Y

Создание пользователя и базы данных

Подключитесь к MySQL:

sudo mysql

Создайте базу данных и выделенного пользователя (не используйте root для приложений):

CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'OchenNadyozhnyParol123!';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

⚠️ Внимание: Всегда используйте сложные пароли и отдельных пользователей для каждого приложения. Никогда не используйте аккаунт root MySQL в подключениях приложения.


Шаг 4: Установка PHP

PHP — язык программирования, который связывает Apache и MySQL, выполняя логику вашего веб-приложения.

Установка PHP и необходимых модулей

sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip php-bcmath php-intl -y

Проверка версии PHP

php -v

Ожидаемый вывод:

PHP 8.1.x (cli) (built: ...)

Настройка PHP для продакшена

Отредактируйте файл php.ini:

sudo nano /etc/php/8.1/apache2/php.ini

Измените или проверьте следующие настройки:

; Лимит памяти на скрипт
memory_limit = 256M

; Максимальный размер загружаемых файлов
upload_max_filesize = 64M
post_max_size = 64M

; Максимальное время выполнения
max_execution_time = 300

; Скрыть версию PHP из HTTP-заголовков (безопасность)
expose_php = Off

; Включить логирование ошибок (не показывать ошибки в браузере на продакшене)
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

Перезапустите Apache для применения изменений:

sudo systemctl restart apache2

Тест PHP

Создайте тестовый файл:

sudo nano /var/www/html/info.php

Содержимое:

<?php
phpinfo();

Откройте http://IP_СЕРВЕРА/info.php в браузере. Вы увидите страницу PHP Info со всеми деталями установки.

⚠️ Важно: Удалите этот файл после проверки — он раскрывает чувствительную информацию о сервере!

sudo rm /var/www/html/info.php

Шаг 5: Настройка Virtual Hosts в Apache

Virtual Hosts позволяет размещать несколько сайтов на одном сервере.

Создание структуры директорий

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www/example.com

Создание конфигурационного файла VirtualHost

sudo nano /etc/apache2/sites-available/example.com.conf

Содержимое:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

Включение сайта и модуля rewrite

sudo a2ensite example.com.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

Шаг 6: Установка SSL с Let's Encrypt (Certbot)

Каждый современный сайт должен работать на HTTPS. Certbot автоматизирует получение и обновление бесплатных SSL-сертификатов от Let's Encrypt.

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com

Certbot автоматически изменит конфигурацию Apache и настроит редирект HTTP → HTTPS.

Проверьте автоматическое обновление:

sudo certbot renew --dry-run

Если вам нужен коммерческий SSL-сертификат для бизнес-проектов, CLIQHOST предлагает сертификаты от глобально признанных центров сертификации.


Шаг 7: Оптимизация производительности Apache

Включение модулей сжатия и кэширования

sudo a2enmod deflate
sudo a2enmod expires
sudo a2enmod headers
sudo systemctl restart apache2

Настройка GZIP-сжатия

Добавьте в файл .htaccess или непосредственно в VirtualHost:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
    AddOutputFilterByType DEFLATE application/javascript application/json
    AddOutputFilterByType DEFLATE application/x-font-ttf application/vnd.ms-fontobject
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

Настройка кэша для статических ресурсов

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType text/html "access plus 1 day"
</IfModule>

Шаг 8: Настройка MPM для Apache

Apache имеет несколько модулей многопоточной обработки (MPM). По умолчанию используется mpm_prefork, но для лучшей производительности с PHP-FPM рекомендуется mpm_event.

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo apt install php8.1-fpm -y
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl restart apache2 php8.1-fpm

💡 PHP-FPM управляет процессами PHP отдельно от Apache, значительно улучшая производительность под высокой нагрузкой. Идеально для сайтов со средним-высоким трафиком на VPS NVMe.


Шаг 9: Мониторинг и логи

Просмотр логов Apache в реальном времени

# Логи ошибок
sudo tail -f /var/log/apache2/error.log

# Логи доступа
sudo tail -f /var/log/apache2/access.log

Проверка использования ресурсов

# Использование CPU и RAM
htop

# Место на диске
df -h

# Процессы Apache
ps aux | grep apache2

Для расширенного мониторинга (Prometheus, Grafana, Zabbix) CLIQHOST предлагает услуги администрирования сервера, где наша команда настраивает и мониторит вашу инфраструктуру.


Шаг 10: Полное тестирование стека LAMP

Создайте простой PHP-файл, который тестирует подключение к базе данных:

sudo nano /var/www/example.com/public_html/test_db.php
<?php
$host = 'localhost';
$dbname = 'myapp_db';
$username = 'myapp_user';
$password = 'OchenNadyozhnyParol123!';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "✅ Подключение к MySQL успешно!";
} catch (PDOException $e) {
    echo "❌ Ошибка подключения: " . $e->getMessage();
}

Откройте https://example.com/test_db.php. Если видите сообщение об успехе, стек LAMP работает полностью.

⚠️ Удалите тестовый файл сразу после проверки!

sudo rm /var/www/example.com/public_html/test_db.php

Дополнительная безопасность для стека LAMP

Защита директории администрирования

Если у вас есть директория /admin, добавьте защиту паролем:

sudo htpasswd -c /etc/apache2/.htpasswd admin_user

В VirtualHost или .htaccess:

<Directory /var/www/example.com/public_html/admin>
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Directory>

Отключение ненужных HTTP-методов

<LimitExcept GET POST HEAD>
    deny from all
</LimitExcept>

Скрытие версии Apache

Отредактируйте /etc/apache2/conf-available/security.conf:

ServerTokens Prod
ServerSignature Off

Заключение

Вы установили и настроили полный стек LAMP на VPS Linux, включая:

  • ✅ Apache с Virtual Hosts и модулями оптимизации
  • ✅ MySQL с выделенными пользователями и базами данных
  • ✅ PHP с настройками для продакшена и PHP-FPM
  • ✅ Автоматический SSL с Certbot
  • ✅ Базовые меры безопасности

Правильно настроенный стек LAMP даёт надёжную основу для любого PHP-приложения — от простого WordPress-блога до сложного корпоративного приложения.

Если вы хотите пропустить этап ручной настройки или предпочитаете профессионально управляемую среду, команда CLIQHOST готова помочь. Изучите наши планы VPS SSD, VPS NVMe или услуги администрирования сервера — или свяжитесь с нами для индивидуального решения.

SHARE
// what clients say

What Our Clients Say

Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău