Убедиться в функционировании PHP: инструкции и сценарии

Раздел: Администрирование PHP -> Отладка

Основные способы проверки установки PHP

Как проверить установку PHP через командную строку?

Наиболее эффективный и быстрый способ убедиться, что PHP установлен и доступен, - выполнить команду php -v в терминале. Она выводит версию PHP и информацию о сборке. Этот метод не требует веб-сервера и подходит для серверов без графического интерфейса.

php -v
PHP 8.2.0 (cli) (built: Nov 27 2022 10:45:26) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.0, Copyright (c) Zend Technologies

Пояснение: команда выводит номер версии, дату сборки и информацию о Zend Engine. Если PHP не установлен или не добавлен в переменную окружения PATH, появится сообщение command not found.

Проблемы и типичные ошибки:

  • Ошибка command not found - PHP не установлен или не прописан в PATH. Решение: установить PHP (например, через пакетный менеджер) или добавить путь к исполняемому файлу в PATH.
  • Вывод содержит предупреждения об отсутствии модулей - необходимо проверить зависимости и установить недостающие расширения.
  • Версия CLI отличается от версии модуля веб-сервера - это нормально, но важно учитывать при развертывании.

Как просмотреть полную конфигурацию PHP через веб-интерфейс?

Функция phpinfo() отображает подробную информацию о версии PHP, загруженные расширения, переменные окружения и многое другое. Для этого создаётся файл с содержимым:

<?php phpinfo(); ?>

Результат - многостраничная таблица с настройками. Этот способ удобен для диагностики, но не рекомендуется на рабочих серверах.

Проблемы:

  • В браузере отображается исходный код скрипта - значит, веб-сервер не обрабатывает PHP. Решение: настроить сервер (установить модуль PHP, проверить конфигурацию).
  • Пустая страница - возможна ошибка синтаксиса или отключён вывод ошибок. Следует включить отображение ошибок через error_reporting(E_ALL);.

Как быстро убедиться, что PHP работает на веб-сервере?

Создаётся файл test.php с простейшим содержимым:

<?php echo 'PHP works'; ?>

При обращении к файлу через браузер отображается PHP works. Это минимальная проверка работоспособности.

Ошибки:

  • Ошибка синтаксиса - если скрипт содержит опечатки. Проверка через php -l test.php выявляет ошибки.
  • Пустой ответ - возможно, PHP установлен, но не подключён к веб-серверу.

Как получить список установленных расширений PHP?

Команда php -m выводит все скомпилированные и загруженные расширения. Полезна для проверки наличия необходимых модулей (например, PDO, mbstring).

php -m
[PHP Modules]
calendar
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
...
[Zend Modules]
Zend OPcache

Как узнать, какой конфигурационный файл загружен?

Команда php -i | grep "Loaded Configuration" показывает путь к файлу php.ini, который используется в текущей сессии.

php -i | grep "Loaded Configuration"
Loaded Configuration File => /etc/php/8.2/cli/php.ini

Это помогает убедиться, что изменения в php.ini применяются.

Как проверить различие версий CLI и веб-модуля?

Версия PHP для командной строки и для веб-сервера может отличаться. Для проверки используется phpinfo() через веб-сервер и сравнение с выводом php -v. Разные версии могут вызывать несовместимость кода.

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

Расширенные примеры проверки PHP

Ниже приведены нестандартные и подробные способы проверки установки PHP.

Пример 1: Использование встроенного веб-сервера PHP

PHP предоставляет встроенный сервер для разработки. Он позволяет быстро проверить, как скрипты работают без установки Apache или Nginx.

Пример
php -S localhost:8000 -t /home/user/project

После запуска сервера другой терминал выполняет запрос:

Пример
curl http://localhost:8000/index.php
<!DOCTYPE html>
<html>...</html>  (или вывод скрипта)

Пояснение: встроенный сервер полезен для изолированной проверки. Ошибки подключения указывают на проблемы с портом или правами.

Пример 2: Проверка наличия конкретного расширения через PHP-код

Может потребоваться программно проверить, установлено ли расширение, например, PDO или mbstring.

Пример
php -r "echo extension_loaded('pdo') ? 'PDO загружено' : 'PDO не найдено';"
PDO загружено

Пояснение: функция extension_loaded() возвращает true/false. Аналогично можно проверить любое расширение.

Пример 3: Проверка синтаксиса PHP-файла

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

Пример
php -l /var/www/html/test.php
No syntax errors detected in /var/www/html/test.php

Если есть ошибка, вывод укажет строку и тип ошибки.

Пример 4: Фильтрация вывода phpinfo для конкретных разделов

Чтобы получить только общие сведения и конфигурацию, используется константа INFO_GENERAL | INFO_CONFIGURATION.

Пример
php -r "phpinfo(INFO_GENERAL | INFO_CONFIGURATION);"

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

Пример 5: Проверка PHP внутри Docker-контейнера

Если PHP работает в контейнере, проверка выполняется через запуск временного контейнера с образом PHP.

Пример
docker run --rm php:8.2-cli php -v
PHP 8.2.0 (cli) (built: Nov 27 2022 10:45:26) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.0, Copyright (c) Zend Technologies

Пояснение: образ php:8.2-cli содержит только CLI. Для веб-версии используется образ php:8.2-apache.

Пример 6: Проверка заголовка X-Powered-By через curl

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

Пример
curl -I http://localhost/phpinfo.php 2>&1 | grep -i "x-powered-by"
X-Powered-By: PHP/8.2.0

Отсутствие заголовка говорит о том, что PHP не обрабатывает запрос (например, сервер отдаёт статический файл).

Пример 7: Получение значения конкретной директивы php.ini

Команда php -i с фильтром позволяет узнать значение параметра, например, max_execution_time.

Пример
php -i | grep -i "max_execution_time"
max_execution_time => 30 => 30

Пояснение: первое значение - локальное, второе - глобальное (если отличается).

Пример 8: Проверка разрядности PHP (32 или 64 бита)

Используется константа PHP_INT_SIZE: 4 для 32-битной платформы, 8 для 64-битной.

Пример
php -r "echo PHP_INT_SIZE;"
8

Это важно при работе с большими числами или определёнными библиотеками.

проверка установки PHP - comments

En
проверка php (php)