PHP-код не выполняется, а отображается в браузере как текст
Заголовок
`, он отобразится как надо. Установлен XAMPP, Apache запущен, PHP вроде бы установлен. Что я делаю не так? Может быть, нужно что-то дополнительно настраивать? Пробовал переустанавливать XAMPP, но проблема осталась. Версия PHP 8.2, Windows 10. Подскажите, пожалуйста, в чём может быть дело? <<Основные причины и их решение
Проблема, когда PHP-код отображается в браузере вместо выполнения, встречается очень часто у начинающих разработчиков. Вот пошаговый план диагностики и исправления.
1. Проверьте, что файл открывается через веб-сервер
Самая распространённая ошибка — открытие PHP-файла напрямую через файловую систему. Если вы вводите в адресной строке:
file:///C:/xampp/htdocs/test/test.php
— то браузер просто показывает содержимое файла, так как PHP не может быть обработан без веб-сервера.
Правильный адрес должен быть:
http://localhost/test/test.php
Убедитесь, что используете именно http://localhost/..., а не путь к файлу.
2. Проверьте, установлен ли PHP как модуль Apache
Откройте конфигурационный файл Apache — httpd.conf (обычно находится в C:\xampp\apache\conf\). Найдите строки, отвечающие за загрузку PHP-модуля. Они должны выглядеть так:
LoadModule php_module "C:/xampp/php/php8apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/xampp/php"
Если этих строк нет — добавьте их. После изменений обязательно перезапустите Apache через панель управления XAMPP.
3. Проверьте, обрабатывает ли Apache файлы с расширением .php
В том же httpd.conf убедитесь, что есть директива:
AddType application/x-httpd-php .php
Без неё Apache не будет передавать PHP-файлы интерпретатору.
4. Проверьте синтаксис PHP-кода
Иногда проблема в самом коде. Создайте простейший файл info.php с содержимым:
<?php phpinfo(); ?>
Откройте его через http://localhost/info.php. Если увидите страницу с информацией о PHP — значит, всё работает, проблема была в вашем коде. Если снова видите текст — проблема в настройках.
5. Проверьте права доступа к папке
Убедитесь, что папка htdocs и её содержимое доступны для чтения веб-серверу. В Windows это обычно не проблема, но если вы меняли пути — проверьте.
6. Альтернативный тест
Создайте простой HTML-файл в той же папке и откройте его через localhost. Если HTML работает, а PHP — нет, значит, проблема именно в настройках PHP/Apache.
Быстрая проверка: откройте командную строку и выполните:
php -v
Если команда не найдена — PHP не установлен или не добавлен в PATH.
Надеюсь, один из этих шагов поможет вам решить проблему. Чаще всего дело в первом пункте — файл открывается не через localhost.
<<Дополнительные причины и альтернативный подход
Если основные шаги не помогли, проверьте следующие моменты:
- Короткие теги PHP отключены. Если ваш код использует
<? ?>вместо<?php ?>, убедитесь, что вphp.iniвключена опцияshort_open_tag = On. По умолчанию она часто отключена, поэтому всегда используйте полный синтаксис<?php. - Конфликт портов. Другой сервер (например, IIS или Skype) может занимать порт 80. Проверьте в XAMPP логи Apache — если порт занят, измените его в
httpd.conf(например, на 8080) и обращайтесь к сайту черезhttp://localhost:8080/. - Попробуйте встроенный сервер PHP. Если Apache никак не настраивается, используйте встроенный сервер для теста. Откройте командную строку в папке с файлом и выполните:
php -S localhost:8000
Затем откройте в браузере http://localhost:8000/test.php. Если код выполнится — проблема точно в Apache, и стоит переустановить XAMPP или проверить конфигурацию заново.