Установка PHP и MySQL на Debian

Типовая ситуация: вы взяли VPS, поставили Debian, но проект стоит, потому что непонятно с чего начать установку PHP и базы. В поиске куча обрывочных гайдов, где у кого-то Debian 8, у кого-то MySQL 5.5, команда не работает, конфиги другие.

Ниже нормальная, живая инструкция по теме установка php mysql debian для актуальных версий Debian. Разберем debian установка mysql, установку PHP с нужными модулями и покажу, как проверить связку на реальном тестовом скрипте. В конце будет логичный шаг как поднять все это на VPS xhost24 с нормальной производительностью и скидкой 25 процентов при оплате от 6 месяцев.

1. Что нужно перед началом

Чтобы установка mysql php debian прошла без танцев:

  • VPS или выделенный сервер с Debian 11 или 12

  • Доступ по SSH

  • Пользователь с правами sudo или root

Если сервера еще нет, проще взять готовый VPS на xhost24 с Debian из списка и панелью, чем пытаться оживлять случайный дешевый хостинг.

Дополнительно полезно почитать в базе знаний статьи про выбор VPS под сайт и перенос проектов на VPS, чтобы не упереться в ресурсы через месяц.

2. Проверяем версию Debian и обновляем систему

Сначала убедимся, что система адекватная и обновленная.

Проверка версии Debian:

cat /etc/os-release

Обновление списка пакетов и базовой системы:

sudo apt update
sudo apt upgrade -y

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

sudo reboot

Это экономит нервы потом, когда установка php mysql debian ломается из-за старых зависимостей.

3. Debian установка MySQL или MariaDB

На современных Debian вместо классического MySQL по умолчанию ставится MariaDB. Для большинства проектов это один в один замена. Команды такие же, клиент mysql тот же, драйвера PHP работают без разницы.

3.1 Устанавливаем сервер базы данных

Команды для mysql установка debian:

sudo apt update
sudo apt install -y mariadb-server

Проверяем и включаем автозапуск:

sudo systemctl enable --now mariadb
sudo systemctl status mariadb

Статус должен быть active (running).

3.2 Первичная защита и базовая настройка

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

sudo mysql_secure_installation

Вопросы мастера:

  • Switch to unix_socket authentication

    Оставьте значение по умолчанию, если не понимаете зачем менять

  • Change the root password

    Задайте сильный пароль для root в MySQL

  • Remove anonymous users

    Отвечаем Yes

  • Disallow root login remotely

    Для типового веб-сервера лучше Yes

  • Remove test database and access to it

    Yes

  • Reload privilege tables now

    Yes

Это минимальный набор, без которого debian установка mysql считается незавершенной.

3.3 Создаем базу и пользователя под проект

Подключаемся к серверу:

sudo mysql

Внутри консоли mysql:

CREATE DATABASE myproject CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'Сильный_Пароль_123';

GRANT ALL PRIVILEGES ON myproject.* TO 'myuser'@'localhost';

FLUSH PRIVILEGES;
EXIT;

Теперь у вас есть отдельная база и пользователь только под ваш проект. Писать сайт напрямую под root в базе это классическая ошибка новичков.

4. Установка PHP на Debian

Дальше займемся PHP. Здесь важно не превратить систему в свалку модулей.

4.1 Базовый PHP и модуль для MySQL

Для простого варианта установка mysql php debian:

sudo apt update
sudo apt install -y php php-mysql

Так вы ставите сам PHP и драйвер для работы с MySQL или MariaDB.

Можете сразу добавить популярные модули:

sudo apt install -y php-cli php-curl php-xml php-gd php-mbstring php-zip

Не надо ставить все подряд пакеты php-*, если не понимаете, зачем они. Каждый модуль это лишняя поверхность для атак и обновлений.

4.2 PHP под Apache или Nginx

Дальше надо решить, какой веб-сервер вы используете.

Вариант 1. Apache с модулем PHP:

sudo apt install -y apache2 libapache2-mod-php
sudo systemctl enable --now apache2

Apache автоматически подхватит PHP через модуль libapache2-mod-php.

Вариант 2. Nginx + PHP-FPM:

sudo apt install -y nginx php-fpm
sudo systemctl enable --now nginx php-fpm

В этом варианте PHP работает как отдельный процесс php-fpm, а Nginx прокидывает запросы на него. Для нагруженных сайтов и современных конфигураций это чуть более гибкое решение.

5. Настройка связки Nginx + PHP + MySQL на Debian

Разберем коротко типичный кейс с Nginx.

5.1 Проверяем статус служб

sudo systemctl status nginx
sudo systemctl status php-fpm
sudo systemctl status mariadb

Все три сервиса должны быть в состоянии active.

5.2 Базовая конфигурация виртуального хоста

Открываем дефолтный конфиг сайта:

sudo nano /etc/nginx/sites-available/default

Пример минимальной конфигурации блока server, который умеет отдавать PHP (суть, вам не нужно копировать буквально до символа, важно понять структуру):

server {
    listen 80;
    server_name ваш_домен_или_IP;

    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Сохраняем и выходим из редактора. Проверяем конфиг:

sudo nginx -t

Если ошибок нет, перезапускаем Nginx:

sudo systemctl reload nginx

Теперь установка php mysql debian завершена в части связки веб-сервер плюс PHP.

6. Тестируем PHP и подключение к MySQL

6.1 Проверка phpinfo

Создаем файл info.php в корне сайта:

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

Откройте в браузере:

http://IP_СЕРВЕРА/info.php

Вы должны увидеть страницу с информацией о PHP. Найдите блок mysqli и убедитесь, что драйвер активен и видит MariaDB или MySQL.

После проверки удалите файл, не держите phpinfo открытым на проде:

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

6.2 Тест соединения с базой

Создаем файл test_db.php:

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

Вставляем:

<?php
$host = 'localhost';
$db   = 'myproject';
$user = 'myuser';
$pass = 'Сильный_Пароль_123';

$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4";

try {
    $pdo = new PDO($dsn, $user, $pass, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ]);
    echo 'Подключение к базе успешно';
} catch (PDOException $e) {
    echo 'Ошибка подключения: ' . $e->getMessage();
}

Сохраняем, открываем:

http://IP_СЕРВЕРА/test_db.php

Если видите сообщение про успешное подключение, значит установка mysql php debian выполнена корректно, PHP общается с базой, пользователь и база созданы нормально.

Не забудьте потом удалить этот файл:

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

7. Частые ошибки при установке PHP и MySQL на Debian

  • Устанавливают старые версии по найденным в блоге командам

    Перед копированием команд всегда смотрите, для какого Debian они написаны

  • Путают MySQL и MariaDB

    В Debian по умолчанию MariaDB это нормально для 99 процентов проектов

  • Запускают сайт под root в базе

    Всегда создавайте отдельного пользователя и отдельную базу

  • Держат phpinfo и тестовые скрипты открытыми

    Это прям подарок для любителей поковырять чужие сайты

  • Не проверяют статус служб

    Любой троттлинг PHP и MySQL легче всего отлавливать через systemctl и логи

Дополнительно в базе знаний xhost24 можно держать отдельные статьи про настройку Nginx под PHP и про оптимизацию MySQL под разные типы нагрузок. Логично ссылаться на них из этого материала.

8. Мини FAQ

В чем разница между MySQL и MariaDB на Debian

Для обычного сайта или интернет-магазина вы разницы не увидите. Команды и драйверы совпадают. Для типовой задачи debian установка mysql через MariaDB полностью нормальна.

Нужен ли отдельный пользователь MySQL для каждого сайта

Желательно да. Иначе при компрометации одного проекта нападающий получает доступ ко всем базам, где крутится один и тот же пользователь.

Какой PHP ставить на новый проект

Если нет жестких требований, выбирайте актуальную версию PHP из репозиториев Debian. Для WordPress и большинства CMS подходит та, что идет в стандартных пакетах Debian 11 или 12.

Можно ли поставить Apache и Nginx одновременно

Можно, но это уже история про обратный прокси и более сложную схему. Для первого сервера выберите что-то одно, потом уже усложняйте.

Нужно ли настраивать firewall перед публикацией сайта

Да, минимум открыть 22, 80 и 443 порты и закрыть все лишнее. Это отдельная тема, под которую имеет смысл выделить отдельную статью в базе знаний.

9. Что дальше и почему имеет смысл взять VPS на xhost24

Если вы уже разобрались с тем, как выглядит установка php mysql debian, следующий логичный шаг поднять это не на случайном VPS, а на нормальной площадке, где есть запас по ресурсам и адекватная поддержка.

На xhost24 доступны VPS на NVMe в европейских дата-центрах. Можно за пару минут развернуть чистый Debian, установить PHP, MySQL или MariaDB, панель управления и спокойно перенести проекты без ощущения, что сервер живет на честном слове.

Чтобы снизить риски и при этом не переплачивать ежемесячно, при оплате любых услуг от 6 месяцев действует скидка 25 процентов. Этого хватает, чтобы спокойно настроить сервер, перенести сайты, протестировать нагрузку и убедиться, что все работает стабильно.

Откройте страницу тарифов VPS на xhost24, выберите конфигурацию под свои проекты, оплатите от 6 месяцев и заберите свою скидку 25 процентов. Если не уверены в нужных ресурсах CPU, RAM и диска, напишите в поддержку xhost24 опишите стек проектов и трафик. Вам подберут тариф и конфигурацию под конкретную задачу, без переплаты за лишние гигабайты и виртуальные ядра.

  • 0 Пользователи нашли это полезным
Помог ли вам данный ответ?