
Расширение файла играет ключевую роль. Файлы с расширением .html по умолчанию обрабатываются как статические страницы. Для выполнения PHP нужно сохранять код в файлах с расширением .php и убедиться, что сервер правильно сопоставляет это расширение с PHP-интерпретатором.
Неверные или отсутствующие открывающие и закрывающие теги PHP блокируют выполнение скриптов. Все команды должны быть заключены в <?php ?>. Использование альтернативных сокращённых форм, таких как <? ?>, может не поддерживаться на сервере и приводить к ошибкам.
Кэширование браузера или сервера иногда вызывает впечатление, что код не выполняется. Перед проверкой рекомендуется очистить кэш или отключить его на время тестирования. Для проверки работы PHP достаточно создать простой файл с командой phpinfo() и убедиться, что сервер возвращает информацию о версии и настройках PHP.
Проверка, поддерживает ли сервер PHP

Для того чтобы PHP выполнялся, сервер должен иметь установленный интерпретатор PHP и правильно настроенный модуль для веб-сервера. Проверку можно выполнить несколькими способами:
- Создайте файл info.php в корневой директории сайта с содержимым:
<?php phpinfo(); ?>
- Откройте файл через браузер по адресу http://ваш_сайт/info.php. Если PHP поддерживается, отобразится страница с версией PHP, загруженными модулями и настройками.
- Если отображается исходный код или пустая страница, PHP на сервере не активирован, либо файл обрабатывается как обычный HTML.
Для локальных серверов (XAMPP, OpenServer, MAMP) убедитесь, что соответствующий модуль Apache или Nginx активирован и порт, указанный в настройках, совпадает с адресом, используемым для проверки.
Для Linux-серверов также полезно выполнить команду в терминале:
- php -v – покажет установленную версию PHP.
- which php – укажет путь к интерпретатору PHP.
Если версия PHP отображается корректно, но скрипты в HTML-файлах не выполняются, вероятнее всего, проблема в расширении файлов или настройках веб-сервера.
Правильное расширение файлов для выполнения PHP

Для того чтобы сервер корректно обрабатывал PHP-код, файл должен иметь расширение .php. Файлы с расширением .html или .htm обычно обрабатываются как статические страницы, и PHP внутри них не выполняется.
Если требуется использовать PHP внутри HTML-страниц, рекомендуется переименовать файл, например, с index.html на index.php. После этого сервер будет передавать содержимое файла PHP-интерпретатору.
Для Nginx и Apache также можно настроить обработку PHP в файлах с нестандартными расширениями. В Apache это делается через директиву:
AddType application/x-httpd-php .html .htm
После добавления директивы сервер будет выполнять PHP даже в файлах с расширением .html, но такой подход снижает читаемость и управляемость кода. Оптимальнее использовать .php для всех скриптов, содержащих серверный код.
При работе с системой контроля версий и разными средами разработки важно следить за расширением файлов, чтобы локальные и боевые серверы одинаково интерпретировали PHP-код.
Настройка веб-сервера для обработки PHP

Для корректного выполнения PHP-кода сервер должен быть настроен на передачу файлов PHP интерпретатору. Настройка зависит от используемого веб-сервера.
Для Apache:
- Убедитесь, что модуль mod_php установлен и активирован.
- В файле конфигурации httpd.conf или виртуального хоста проверьте директивы:
LoadModule php_module modules/libphp.so AddHandler application/x-httpd-php .php
Для Nginx:
- PHP обрабатывается через PHP-FPM. В блоке сервера добавьте конфигурацию:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Для локальных сборок (XAMPP, OpenServer) проверьте, что PHP-модуль включен в панели управления, и порт веб-сервера совпадает с адресом тестируемых страниц.
Встроенный код PHP: открывающие и закрывающие теги
Для выполнения PHP-кода обязательно использовать корректные открывающие и закрывающие теги. Основная форма записи:
<?php … ?> – поддерживается на всех серверах и рекомендуется для всех скриптов.
Существуют сокращённые формы:
- <? … ?> – короткий тег, может быть отключён на сервере через short_open_tag в php.ini.
Для однострочных скриптов можно опустить закрывающий тег в файлах .php, но это допустимо только в чисто PHP-файлах без последующего HTML.
Ошибки синтаксиса, которые блокируют выполнение PHP
PHP не выполняется, если в коде присутствуют синтаксические ошибки. Наиболее распространённые причины:
- Пропущенные точки с запятой ; после выражений, особенно перед закрывающим тегом.
- Незакрытые кавычки в строках ‘ или «, что вызывает ошибку парсинга.
- Несоответствие открывающих и закрывающих скобок { } или ( ) в функциях и условных операторах.
- Попытка использовать переменные до объявления или вне области видимости.
- Ошибки в именах функций и классов: использование запрещённых символов или зарезервированных слов.
Для выявления проблем рекомендуется включить отображение ошибок в php.ini:
display_errors = On error_reporting = E_ALL
После включения ошибок браузер будет показывать точное место нарушения синтаксиса, что облегчает исправление и восстановление выполнения PHP.
Влияние кэширования браузера и сервера на PHP

Кэширование может создавать иллюзию, что PHP-код не выполняется. Браузер или сервер сохраняет предыдущую версию страницы, и новые изменения скриптов могут не отображаться.
Для диагностики и устранения проблем используйте следующие методы:
| Метод | Описание | Пример |
|---|---|---|
| Очистка кэша браузера | Удаляет сохранённые версии страниц, принудительно загружая текущий PHP-скрипт. | Ctrl+Shift+R или F12 → Network → Disable cache |
| Отключение кэширования на сервере | Использование заголовков HTTP для контроля кэширования. |
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Pragma: no-cache");
|
| Проверка proxy или CDN | Удаление кэша промежуточных серверов, которые могут выдавать старые версии страниц. | Очистка кэша на уровне Cloudflare или другого CDN |
Применение этих мер гарантирует, что PHP-интерпретатор выполняет актуальный код, а результат сразу отображается в браузере.
Тестирование PHP с простым скриптом

Для проверки работы PHP создайте минимальный скрипт, который позволит определить корректность настройки сервера.
Пример простого файла test.php:
<?php echo "PHP работает"; ?>
Для более подробной диагностики используйте функцию phpinfo(). Она отображает версию PHP, загруженные модули и настройки сервера:
<?php phpinfo(); ?>
Если при открытии скрипта в браузере отображается исходный код или пустая страница, это указывает на проблему с расширением файла, настройкой веб-сервера или отключенным модулем PHP.
Вопрос-ответ:
Почему мой PHP-код не выполняется в файле с расширением .html?
Файлы с расширением .html обрабатываются как статические страницы и не передаются PHP-интерпретатору. Для выполнения PHP необходимо сохранить файл с расширением .php или настроить сервер на обработку PHP внутри HTML через директиву AddType (для Apache) или соответствующий блок location (для Nginx).
Как проверить, поддерживает ли сервер PHP?
Создайте файл info.php с кодом <?php phpinfo(); ?> и откройте его в браузере. Если сервер поддерживает PHP, будет отображена страница с версией PHP, загруженными модулями и настройками. Если код выводится как текст или страница пуста, PHP не активирован.
Можно ли использовать короткие теги PHP в HTML-файлах?
Короткие теги <? ?> зависят от параметра short_open_tag в php.ini и могут быть отключены на сервере. Рекомендуется использовать стандартные теги <?php ?> для всех скриптов, чтобы гарантировать выполнение кода независимо от конфигурации.
Мой PHP-код в файле .php не выполняется. В чём может быть причина?
Проблема может быть в синтаксисе: пропущенные точки с запятой, незакрытые кавычки, несоответствие скобок или использование зарезервированных слов. Также возможно, что веб-сервер не передаёт файлы PHP интерпретатору. Проверьте конфигурацию сервера и включите отображение ошибок через display_errors и error_reporting для диагностики.
Как кэширование влияет на выполнение PHP?
Браузер или сервер может выдавать сохранённую версию страницы, создавая впечатление, что PHP не выполняется. Для проверки очистите кэш браузера и отключите кэширование на сервере с помощью заголовков Cache-Control: no-store, no-cache и Pragma: no-cache. Это гарантирует, что каждый запрос обрабатывается интерпретатором PHP.
Почему PHP-код отображается как текст вместо выполнения в браузере?
Если PHP-код выводится как текст, это значит, что веб-сервер не передаёт файл интерпретатору PHP. Причины могут быть следующими: файл имеет расширение .html вместо .php, модуль PHP не установлен или не активирован, либо конфигурация сервера не настроена на обработку PHP. Для проверки создайте файл test.php с кодом <?php phpinfo(); ?> и откройте его в браузере. Если информация о версии PHP не отображается, нужно установить PHP или скорректировать настройки веб-сервера, например, активировать модуль mod_php в Apache или настроить PHP-FPM для Nginx.
