Avatar ·

PHP-код не выполняется, а отображается в браузере как текст

Всем привет! Я новичок в PHP и столкнулся со странной проблемой. Написал простой скрипт, но когда открываю файл через браузер, вместо результата выполнения вижу сам код. Вот мой код (файл test.php): ```php ``` Я сохранил этот файл в папке C:\xampp\htdocs\test\. Когда захожу в браузер по адресу http://localhost/test/test.php, страница просто показывает: ``` ``` То есть PHP не обрабатывается, а выводится как обычный текст. При этом HTML-код работает нормально — если я напишу `

Заголовок

`, он отобразится как надо. Установлен 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 или проверить конфигурацию заново.