Установка PHP на веб-сервер (Nginx / Apache): проверка через info.php
Зачем нужен PHP на веб-сервере
Веб-серверы Nginx и Apache сами по себе умеют отдавать только статические файлы (HTML-страницы, картинки, стили CSS). Чтобы на сервере работали современные динамические сайты и CMS (WordPress, Битрикс, Laravel), требуется установить интерпретатор PHP. Для Apache обычно используется встроенный модуль, а для Nginx — отдельный высокопроизводительный сервис обработки скриптов PHP-FPM (FastCGI Process Manager).
Признаки того, что PHP не работает
- При открытии сайта браузер предлагает скачать
index.phpкак файл, вместо того чтобы открыть страницу. - На экране отображается чистый белый экран (White Screen of Death) или сам исходный PHP-код.
- Веб-сервер выдает ошибку
502 Bad Gateway.
Пошаговая установка и тестирование PHP
Шаг 1: Установка пакетов PHP и расширений
Установим базовый PHP, менеджер процессов PHP-FPM и популярные модули для работы с базами данных и графикой:
sudo apt update
sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -yШаг 2: Проверка версии и статуса службы
Узнаем точную версию установленного PHP (например, PHP 8.1, 8.2 или 8.3):
php -v
sudo systemctl status php*-fpmШаг 3: Настройка связи с веб-сервером
Для Apache: достаточно включить модуль и перезапустить веб-сервер:
sudo a2enmod php*
sudo systemctl restart apache2Для Nginx: откройте конфигурационный файл вашего сайта (/etc/nginx/sites-available/default) и добавьте обработку PHP-файлов через Unix-сокет:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}Проверьте синтаксис Nginx и примените настройки: sudo nginx -t && sudo systemctl reload nginx.
Шаг 4: Создание тестового диагностического файла info.php
Создадим тестовый скрипт в корневой папке сайта:
echo "" | sudo tee /var/www/html/info.phpШаг 5: Проверка в браузере и ОБЯЗАТЕЛЬНОЕ удаление файла
Откройте в браузере адрес: http://IP_сервера/info.php. Вы увидите фиолетовую таблицу со всеми характеристиками среды PHP.
Внимание: Страница phpinfo() раскрывает версии модулей и секретные переменные окружения. После успешного теста обязательно удалите этот файл:
sudo rm /var/www/html/info.phpТиповые ошибки администраторов
- Оставленный файл info.php в открытом доступе: Хакеры используют сканеры для поиска info.php, чтобы узнать точные уязвимые версии библиотек сервера.
- Несоответствие версии сокета PHP-FPM в Nginx: Если в конфиге Nginx указан сокет
php7.4-fpm.sock, а на сервере установлен PHP 8.2, Nginx вернет ошибку502 Bad Gateway.
Инженеры ITSTM подберут оптимальные параметры memory_limit и opcache, изолируют пулы пользователей и обеспечат максимальный PageSpeed вашего ресурса.
Частые вопросы (FAQ)
Как установить конкретную старую версию PHP (например, PHP 7.4) в Ubuntu?
Добавьте сторонний репозиторий Ондрея Сури (Ondřej Surý): 'sudo add-apt-repository ppa:ondrej/php -y', обновите списки пакетов и установите нужную версию: 'sudo apt install php7.4 php7.4-fpm'.
Где находится главный конфигурационный файл php.ini?
Для Apache путь обычно: /etc/php/X.X/apache2/php.ini. Для PHP-FPM (Nginx): /etc/php/X.X/fpm/php.ini. Для консоли CLI: /etc/php/X.X/cli/php.ini.
Как увеличить максимальный размер загружаемого файла в PHP?
В файле php.ini измените параметры: upload_max_filesize = 64M и post_max_size = 64M, после чего перезапустите службу php-fpm.
Почему при открытии info.php в браузере отображается чистый белый экран?
На сервере отключен вывод ошибок. Проверьте параметр 'display_errors = On' в php.ini или посмотрите системный лог ошибок: /var/log/nginx/error.log или /var/log/apache2/error.log.