Установка PHP для Nginx в Ubuntu: проверка работы через phpinfo()
Nginx отдает PHP как текстовый файл или скачивает его
В отличие от Apache, Nginx не содержит встроенного модуля PHP и не умеет исполнять код самостоятельно. Для работы требуется менеджер процессов PHP-FPM. Если связь настроена неверно, браузер при открытии сайта будет просто скачивать файл index.php вместо отображения страницы.
Установка PHP-FPM и привязка к Nginx
- Устанавливаем PHP-FPM и базовые расширения:
sudo apt update sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml -y - Узнаем установленную версию:
php -v(Например, версия
8.2— значит сокет находится в/run/php/php8.2-fpm.sock). - Настраиваем виртуальный хост Nginx:
sudo nano /etc/nginx/sites-available/defaultУбедитесь, что внутри блока
serverесть обработчик FastCGI:location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.2-fpm.sock; } - Создаем тестовый скрипт phpinfo():
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php - Перезапускаем службы:
sudo systemctl restart php8.2-fpm && sudo systemctl reload nginx
Откройте в браузере http://IP_СЕРВЕРА/info.php. После проверки обязательно удалите файл: sudo rm /var/www/html/info.php!
Частые вопросы (FAQ)
Почему открывается пустой белый экран при переходе на info.php?
Включите вывод ошибок в /etc/php/8.2/fpm/php.ini: display_errors = On и перезапустите php8.2-fpm.
Что делать при ошибке 502 Bad Gateway?
Проверьте статус службы PHP: sudo systemctl status php*-fpm и убедитесь в правильности пути к сокету.
Как установить старую версию PHP (например, 7.4) на Ubuntu 22.04/24.04?
Добавьте репозиторий PPA: sudo add-apt-repository ppa:ondrej/php.
Как изменить лимит загрузки файлов в PHP?
Измените параметры upload_max_filesize и post_max_size в файле php.ini.