В этой статье подробно описано, как с нуля настроить на 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.php2. Настройка файла 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, виртуальные хосты, или добавить инструменты отладки.