Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Linux-server Linux-server
26.05.2026

Почему вместо сайта отображается PHP-код и как это исправить

Иногда при открытии сайта вместо нормальной страницы в браузере отображается PHP-код: <?php ... ?>. Это серьезная проблема: сайт не работает, а часть внутренней логики может стать видна посетителям и поисковым роботам.

Почему PHP-код выводится в браузере

PHP-код должен выполняться на сервере. Пользователь не должен видеть исходный код PHP-файлов. Если браузер показывает PHP как обычный текст, значит сервер не обрабатывает PHP-файл, а отдает его как статический документ.

Чаще всего это происходит по одной из следующих причин:

  • на сервере не установлен PHP;
  • не запущен PHP-FPM;
  • в Nginx или Apache неправильно настроена обработка PHP;
  • файл имеет неправильное расширение;
  • сайт открыт не через веб-сервер, а напрямую как файл;
  • после переноса сайта не настроили виртуальный хост;
  • в конфигурации сервера сломался блок обработки .php.

Чем это опасно

Вывод PHP-кода в браузере — это не просто техническая ошибка. В PHP-файлах могут быть логины, пароли, токены API, настройки подключения к базе данных и внутренняя логика сайта.

Если такой код попадает в открытый доступ, злоумышленник может получить доступ к базе данных, панели управления, почте или сторонним сервисам.

Проверьте, установлен ли PHP

На сервере выполните команду:

php -v

Если PHP установлен, сервер покажет его версию. Например:

PHP 8.2.29 (cli)

Если команда не найдена, PHP нужно установить.

Проверьте PHP-FPM

Для сайтов на Nginx обычно используется PHP-FPM. Проверьте его статус:

systemctl status php8.2-fpm

Версия может отличаться: php8.1-fpm, php8.2-fpm, php8.3-fpm.

Если служба остановлена, запустите ее:

systemctl start php8.2-fpm

Чтобы PHP-FPM запускался автоматически после перезагрузки сервера:

systemctl enable php8.2-fpm

В своих проектах я использую серверную инфраструктуру Timeweb

Хостинг, VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

Пример правильной настройки Nginx для PHP

В конфигурации сайта должен быть блок, который передает PHP-файлы в PHP-FPM:

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

Если используется другая версия PHP, путь к сокету нужно изменить. Например:

fastcgi_pass unix:/run/php/php8.3-fpm.sock;

Проверить доступные сокеты можно командой:

ls /run/php/

Настройка Nginx для 1С-Битрикс

Для сайта на 1С-Битрикс важно, чтобы PHP-файлы корректно передавались в PHP-FPM, а остальные запросы шли через urlrewrite.php.

server {
    listen 80;
    server_name example.ru www.example.ru;

    root /var/www/example.ru;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /bitrix/urlrewrite.php?$args;
    }

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

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

nginx -t

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

systemctl reload nginx

Проверьте расширение файла

PHP-код будет выполняться только в файлах с расширением .php. Если код находится в файле index.html, сервер не будет выполнять его как PHP.

Правильно:

index.php

Неправильно:

index.html

Проверьте короткие PHP-теги

Иногда проблема возникает из-за коротких PHP-тегов:

<?
echo "Текст";
?>

Лучше использовать полный вариант:

<?php
echo "Текст";
?>

Короткие теги могут быть отключены в настройках PHP, поэтому надежнее всегда писать <?php.

Если сайт открывается как файл

PHP не выполняется, если открыть файл напрямую в браузере:

file:///C:/site/index.php

В этом случае браузер просто показывает содержимое файла. PHP должен открываться через локальный или удаленный веб-сервер:

http://localhost/
https://example.ru/

Что делать, если PHP-код уже попал в браузер

Если PHP-код некоторое время был доступен публично, нужно не только исправить сервер, но и проверить безопасность проекта.

  • проверьте, не были ли раскрыты пароли от базы данных;
  • смените пароли, если они могли попасть в открытый доступ;
  • проверьте логи сервера;
  • убедитесь, что конфигурационные файлы недоступны извне;
  • проверьте права на файлы и директории;
  • закройте от прямого доступа служебные файлы и резервные копии.

Дополнительная защита конфигурационных файлов

На сервере не должно быть открытого доступа к резервным копиям, архивам, дампам базы данных и временным файлам.

Например, в Nginx можно закрыть доступ к опасным расширениям:

location ~* \.(sql|bak|backup|old|log|ini|env)$ {
    deny all;
}

Это не заменяет правильную настройку PHP, но снижает риск утечки служебных данных.

Краткий чек-лист исправления

  1. Проверить, установлен ли PHP.
  2. Проверить, запущен ли PHP-FPM.
  3. Проверить конфигурацию Nginx или Apache.
  4. Убедиться, что файлы имеют расширение .php.
  5. Проверить путь к PHP-FPM сокету.
  6. Выполнить nginx -t.
  7. Перезагрузить Nginx.
  8. Проверить сайт в браузере.
  9. Если код был доступен публично — сменить пароли и проверить логи.

Вывод

Если при открытии сайта выводится PHP-код, значит сервер не выполняет PHP-файлы. В большинстве случаев проблема связана с неправильной настройкой Nginx, Apache или PHP-FPM.

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

Не получается самостоятельно?

Помогу разобраться с настройкой, исправить ошибки и реализовать решение под ваш проект.

Поддержка сайтов на 1С-Битрикс

Поддержка сайтов на 1С-Битрикс: быстрое решение ошибок, консультации, обучение сотрудников и сопровождение сайта. 
Резервирую время под ваш проект для оперативной помощи и стабильной работы сайта.
Подробнее
26 просмотров
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

Без инфоцыганства и мотивационных цитат — только практика, кейсы и рабочие решения для бизнеса и веб-разработки.

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться