Как развернуть сайт на ПК: быстрый старт LAMP на Ubuntu/Debian
Или: как подружить Apache, PHP и MariaDB, чтобы сайт жил, а не грустил в папке Downloads.
Если у тебя есть ПК или сервер на Ubuntu/Debian, и ты хочешь быстро поднять сайт, то классический стек LAMP — это один из самых прямых путей к цели.
LAMP — это:
- Linux — операционная система,
- Apache — веб-сервер,
- MariaDB — база данных,
- PHP — язык, который оживляет сайт.
Плюс добавим phpMyAdmin, чтобы базой можно было управлять не только суровым взглядом из терминала.
Что получится в итоге
После всех шагов у тебя будет:
- работающий веб-сервер Apache;
- установленный PHP;
- база данных MariaDB;
- доступ к сайту через браузер;
- phpMyAdmin по адресу
http://IP_сервера/phpmyadmin.
Если ты ставишь всё на свой ПК, а не на удалённый сервер, вместо
IP_сервераобычно можно использоватьlocalhostили127.0.0.1.
1. Обновляем систему
Если работаешь с удалённой машиной — подключайся по SSH:
ssh user@ip_address
Если всё ставишь на локальный ПК, просто открой терминал и выполняй команды дальше.
Обновляем списки пакетов:
sudo apt update
При желании можно сразу обновить уже установленные пакеты:
sudo apt upgrade -y
Что это делает
Команда apt update говорит системе:
«Эй, покажи, какие версии программ сейчас самые свежие».
А apt upgrade уже ставит обновления.
Это как проверить, не вышла ли новая прошивка для твоего цифрового зоопарка.
2. Устанавливаем веб-сервер и всё нужное
Ставим Apache, MariaDB, PHP и полезные расширения:
sudo apt install -y apache2 mariadb-server php libapache2-mod-php php-mysql php-mbstring php-curl php-zip php-gd phpmyadmin
Что здесь за что отвечает
apache2— отдаёт страницы в браузер;mariadb-server— хранит данные сайта;php— выполняет PHP-код;libapache2-mod-php— связывает Apache и PHP;php-mysql— позволяет PHP работать с MariaDB;php-mbstring— для корректной работы со строками и кириллицей;php-curl— для HTTP-запросов;php-zip— для архивов;php-gd— для работы с изображениями;phpmyadmin— удобный веб-интерфейс для базы.
Важно
Во время установки phpmyadmin система может спросить:
- какой веб-сервер использовать — выбирай apache2;
- настроить ли базу автоматически — можно отвечать Yes.
Да, это тот редкий случай, когда кнопка «Да» действительно помогает.
3. Включаем автозапуск служб
Чтобы Apache и MariaDB запускались автоматически после перезагрузки:
sudo systemctl enable --now apache2
sudo systemctl enable --now mariadb
Что означает enable --now
enable— добавить в автозагрузку;--now— запустить прямо сейчас.
Проверить, всё ли в порядке:
systemctl status apache2
systemctl status mariadb
Если статус показывает active (running), значит сервис жив, бодр и готов к труду.
4. Подготавливаем папку сайта
Стандартная папка сайта Apache:
cd /var/www/html
Если не нужна стандартная тестовая страница Apache, удаляем её:
sudo rm index.html
Теперь можно положить туда свои файлы сайта.
Если сайт уже лежит у тебя на этом ПК
Например, если проект находится в домашней папке:
sudo cp -r ~/my-site/* /var/www/html/
Если копируешь с другого компьютера
Можно использовать scp:
scp -r папка_с_сайтом user@ip_address:/var/www/html/
Что важно помнить
Папка /var/www/html — это корень сайта. Всё, что лежит внутри, браузер сможет открыть по адресу:
http://IP_сервера/
или, если это твой локальный ПК:
http://localhost/
5. Настраиваем базу данных
Заходим в консоль MariaDB:
sudo mariadb
Создаём базу данных и пользователя:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'сложный_пароль';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Что происходит
CREATE DATABASE
Создаёт базу данных mydb.
Кодировка utf8mb4 — правильный современный выбор.
Она поддерживает:
- кириллицу,
- спецсимволы,
- эмодзи,
- и вообще всё, что пользователи любят вставлять в формы «О себе».
CREATE USER
Создаёт отдельного пользователя базы.
Это хороший тон:
не давать сайту работать от имени суперпользователя, потому что потом сайт начинает чувствовать себя слишком важным.
GRANT ALL PRIVILEGES
Выдаёт права пользователю только на конкретную базу.
FLUSH PRIVILEGES
Применяет изменения сразу.
6. Проверяем, что сайт открывается
Открой браузер и зайди по адресу:
http://localhost/
или:
http://IP_сервера/
Также можно проверить через терминал:
curl -I http://localhost
Если всё хорошо, увидишь HTTP-ответ вроде 200 OK.
7. Проверяем PHP
Чтобы убедиться, что PHP действительно работает, создай тестовый файл:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Теперь открой в браузере:
http://localhost/info.php
Если появилась страница с параметрами PHP — поздравляю, интерпретатор ожил.
После проверки файл лучше удалить, чтобы не светить лишнюю информацию о системе:
sudo rm /var/www/html/info.php
8. Доступ к phpMyAdmin
После установки phpMyAdmin обычно доступен по адресу:
http://IP_сервера/phpmyadmin
или локально:
http://localhost/phpmyadmin
Для входа используй:
- пользователя базы
myuser - и его пароль.
Зачем он нужен
Через phpMyAdmin удобно:
- создавать таблицы,
- импортировать SQL-дампы,
- смотреть данные,
- редактировать записи,
- и делать вид, что ты всё это не смог бы так же сделать в консоли за 30 секунд.
9. Полезные команды для диагностики
Проверить Apache
systemctl status apache2
Проверить MariaDB
systemctl status mariadb
Посмотреть ошибки Apache
sudo tail -n 50 /var/log/apache2/error.log
Подключиться к базе от имени созданного пользователя
mariadb -u myuser -p -D mydb
10. Если сайт не открывается
Вот короткий чек-лист, если браузер смотрит на тебя с осуждением:
1. Apache вообще запущен?
sudo systemctl status apache2
2. Файлы точно лежат в /var/www/html?
ls -la /var/www/html
3. Не мешает ли фаервол?
Если включён ufw, открой HTTP:
sudo ufw allow 80/tcp
Если нужен SSH:
sudo ufw allow 22/tcp
4. Есть ли ошибки в логах?
sudo tail -n 50 /var/log/apache2/error.log
Обычно лог говорит честно, что именно пошло не так.
Иногда даже честнее, чем коллега на созвоне.
11. Немного о безопасности
Если это не просто учебный стенд, а реальный сайт, то стоит помнить:
Не используй root для сайта
Для базы лучше создавать отдельного пользователя, как в примере.
Ставь сложные пароли
Можно сгенерировать пароль прямо на сервере:
openssl rand -base64 16
Используй HTTPS
Для реального проекта нужен SSL-сертификат, например через Let’s Encrypt.
Не держи phpMyAdmin открытым всему интернету
В продакшене его лучше:
- ограничить по IP,
- спрятать за дополнительной авторизацией,
- или вообще не выставлять наружу.
Потому что phpMyAdmin в публичном доступе — это как оставить дверь в серверную с табличкой:
«Мы доверяем людям».
12. Минимальный итог
Если коротко, то процесс такой:
- обновил систему;
- поставил Apache + MariaDB + PHP + phpMyAdmin;
- включил автозапуск;
- положил файлы сайта в
/var/www/html; - создал базу и пользователя;
- открыл сайт в браузере.
Заключение
Развернуть сайт на ПК под Ubuntu/Debian — задача вполне реальная даже без магии DevOps 80 уровня.
С помощью нескольких команд ты получаешь рабочую площадку для:
- тестов,
- обучения,
- локальной разработки,
- небольшого проекта.
И да, LAMP — это по-прежнему рабочая классика.
Не самая модная, зато надёжная: как старый системный администратор, который ничего не говорит, но почему-то у него всё работает.