PHP
Проверка PHP-кода на ошибки: синтаксис, запуск, логи и HTTP-коды
Короткий ответ: PHP-код проверяют в несколько этапов. Сначала синтаксис командой php -l, затем запуском файла, затем выводом ошибок в учебной среде, затем логами сервера. Если речь о веб-странице, дополнительно смотрят HTTP-код: 200, 302, 404, 500 и другие ответы
Не существует одной кнопки, которая гарантирует, что PHP-код полностью правильный. Синтаксис может быть без ошибок, но логика, база данных, права доступа или входные данные все равно могут сломать страницу
Проверка синтаксиса
php -l index.php
Эта команда ищет синтаксические ошибки: пропущенные скобки, кавычки, точки с запятой, неверные конструкции
Пример ошибки
<?php
echo "Привет"
Проверка покажет проблему в файле. Но если синтаксис правильный, команда не проверит подключение к базе, существование файлов или правильность результата
Включение ошибок в учебной среде
Для локальной разработки можно временно включить вывод ошибок
<?php
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
На рабочем сайте лучше не показывать ошибки посетителям. Там ошибки должны уходить в лог
Где смотреть логи
Логи зависят от окружения
Open Server: панель и папка логов окружения
XAMPP: apache/logs/error.log
Linux Apache: /var/log/apache2/error.log
Nginx: /var/log/nginx/error.log
PHP-FPM: отдельный лог пула или сервиса
Хостинг: раздел логов в панели
Если сайт показывает белую страницу, лог часто быстрее всего приводит к реальной причине
Проверка HTTP-кода
Если страница открывается в браузере, посмотрите код ответа. В терминале можно использовать
curl -I https://example.com/page.php
Типовые коды
200 — страница отдала ответ
301/302 — редирект
403 — доступ запрещен
404 — страница не найдена
500 — ошибка сервера
HTTP-код не заменяет PHP-логи, но помогает понять, что именно видит браузер
Проверка входных данных
Многие ошибки появляются не при загрузке файла, а при конкретных данных формы
<?php
var_dump($_POST);
Для учебной отладки var_dump() полезен. В рабочем проекте лучше писать аккуратные логи и не выводить персональные данные на экран
Проверка подключенных файлов
Если ошибка связана с require или include, используйте абсолютные пути через __DIR__
<?php
require __DIR__ . '/config.php';
Относительные пути часто ломаются, если файл запускается из другой директории
Мини-практика
Создайте файл с намеренной ошибкой: пропустите точку с запятой, запустите php -l, исправьте ошибку, затем добавьте обращение к несуществующему ключу массива и включите error_reporting(E_ALL)
Так вы увидите разницу между синтаксической ошибкой и предупреждением во время выполнения
Частые ошибки
Проверяют только php -l и думают, что код полностью исправен
Включают display_errors на рабочем сайте
Не смотрят логи сервера
Игнорируют HTTP-код ответа
Не проверяют входные данные $_POST, $_GET, $_FILES
Используют относительные пути и ловят ошибку подключения файла
Не различают warning, notice, fatal error и исключение
Что почитать дальше по PHP
Если нужен общий маршрут по теме, откройте рубрику PHP. Для соседних задач пригодятся эти разборы:
- Как скомпилировать PHP в Notepad++: запуск и проверка кода
- Linux install PHP: установка PHP на Ubuntu и проверка окружения
- Как на компе открыть файл PHP и почему двойной клик не запускает код
- Как обновить PHP в Open Server: версия, модули и проверка сайта