Полный пошаговый гайд по установке 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)

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

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

Как отключить SELinux на Ubuntu, CentOS, Debian и RHEL

Подробная инструкция по проверке, временной и постоянной деактивации SELinux на популярных Linux-дистрибутивах: Ubuntu, Debian, CentOS и RHEL. Объяснены способы через консоль и конфигурационные файлы.

17 0 1 мин

PHP Generators

Статья рассказывает о PHP генераторах - что это, как они работают, зачем нужны и как использовать их в реальных проектах. Примеры включают чтение больших CSV и потоковую обработку данных.

42 0 2 мин