Полный пошаговый гайд по установке Nginx, PHP 8.4 и MySQL на Ubuntu 24.04

В этой статье подробно описано, как с нуля настроить на Ubuntu 24.04 полноценный стек веб-сервера на базе Nginx, PHP 8.4 (через PHP-FPM) и MySQL.

Подготовка системы

Перед началом убедитесь, что система обновлена. Это избавит вас от проблем с зависимостями:

sudo apt update && sudo apt upgrade -y

Эта команда обновит список пакетов и установит последние обновления для уже установленных программ.

Установка Nginx

Nginx - это быстрый и надёжный HTTP-сервер. Установить его можно через стандартный пакетный менеджер:

sudo apt install nginx -y

После установки проверьте статус сервера:

sudo systemctl status nginx

Если сервер ещё не запущен, стартуйте его:

sudo systemctl start nginx

Установка PHP 8.4

По умолчанию в Ubuntu 24.04 PHP 8.4 не включён в стандартные репозитории. Чтобы получить свежую версию PHP и необходимые расширения, добавим репозиторий ondrej/php который широко используется как источник актуальных пакетов PHP.

1. Установка зависимостей и добавление PPA

sudo apt install software-properties-common ca-certificates apt-transport-https -y
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Нажмите Enter, когда система предложит подтвердить добавление PPA.

2. Установка PHP 8.4 с расширениями

Установите PHP и набор расширений, необходимых для работы с базами данных, XML, строками и прочим:

sudo apt install php8.4 php8.4-fpm php8.4-cli php8.4-mysql php8.4-curl \
php8.4-xml php8.4-mbstring php8.4-zip php8.4-bcmath php8.4-intl -y

Проверьте установленную версию:

php -v

Вы должны увидеть информацию о версии PHP 8.4.

Настройка PHP-FPM для Nginx

PHP-FPM (FastCGI Process Manager) обрабатывает PHP-запросы для Nginx.

Проверьте, что PHP-FPM запущен:

sudo systemctl status php8.4-fpm

Если он не активен, включите и запустите:

sudo systemctl enable php8.4-fpm
sudo systemctl start php8.4-fpm

Теперь нужно настроить Nginx для обработки PHP-файлов.

Настройка виртуального хоста Nginx

Создайте конфигурацию сайта:

sudo nano /etc/nginx/sites-available/your-site.conf

Пример конфигурации:

server {
    listen 80;
    server_name example.com;
    root /var/www/your-site;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

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

Сохраните изменения, затем проверьте конфигурацию:

sudo nginx -t

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

sudo systemctl reload nginx

Теперь Nginx готов обрабатывать PHP-запросы через PHP-FPM.


Тестирование работы PHP

После настройки Nginx и PHP-FPM важно убедиться, что PHP-скрипты действительно обрабатываются веб-сервером.

1. Создание тестового PHP-файла

Создайте файл info.php в каталоге сайта, который указан в директиве root вашего виртуального хоста Nginx.

Например, если в конфигурации используется:

root /var/www/your-site;

создайте файл так:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/your-site/info.php

2. Настройка файла hosts

Если вы используете доменное имя (например, example.com), но DNS ещё не настроен, необходимо добавить запись в локальный файл hosts. Откройте файл:

sudo nano /etc/hosts

Добавьте строку:

127.0.0.1 example.com

Сохраните файл. Это позволит браузеру корректно открывать сайт по доменному имени.

3. Проверка в браузере

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

http://example.com/info.php

Если всё настроено правильно, вы увидите страницу с подробной информацией о версии PHP и загруженных расширениях. Также можно проверить напрямую через localhost:

http://localhost/info.php

4. Удаление тестового файла

После проверки обязательно удалите файл info.php, так как он содержит чувствительную информацию о сервере:

sudo rm /var/www/your-site/info.php

Установка и настройка MySQL

Теперь установим СУБД MySQL:

sudo apt install mysql-server -y

После установки запустите встроенный скрипт безопасной настройки:

sudo mysql_secure_installation

Следуйте инструкциям на экране: установите пароль для root, отключите анонимных пользователей, удалите тестовую базу данных и т. д.

Проверка соединения PHP -> MySQL

Создайте в корне сайта файл для теста подключения:

<?php
$conn = new mysqli("localhost", "username", "password", "database");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Сохраните его в /var/www/your-site/test-db.php и откройте через браузер.

Если вы увидите сообщение Connected successfully, значит PHP корректно работает с MySQL.


Все, вы настроили на Ubuntu 24.04 современный веб-сервер с Nginx, PHP 8.4 и MySQL. Это мощный и гибкий стек для обслуживания сайтов, CMS и веб-приложений.

Если потребуется расширить функциональность, можно установить дополнительные расширения PHP, настроить SSL, виртуальные хосты, или добавить инструменты отладки.

Комментарии (0)

Войдите, чтобы оставить комментарий

Похожие статьи

Observers в Laravel: чистый способ обработки событий моделей

Что такое наблюдатели в Laravel и как их использовать для чистой обработки событий моделей. Разбор, примеры, регистрация, преимущества и сравнение с событийно-слушательным подходом.

Как использовать файл .htaccess в Apache

Подробное руководство по использованию файла .htaccess в Apache. Рассматриваются способы включения файла, его создание и основные сценарии применения: редиректы, защита директорий, пользовательские ошибки и MIME-типы.

Как скачивать файлы по URL в Laravel

Подробное руководство по скачиванию файлов из внешних URL в Laravel: от простого стриминга до продакшен-ориентированных подходов с сохранением и раздачей файлов пользователям.