Чтобы эффективно работать с PHP, важно понимать, какие модули установлены на сервере, так как они расширяют возможности языка и обеспечивают функциональность для различных приложений. Например, для работы с базами данных, обработкой изображений или интеграцией с внешними сервисами необходимы специфические расширения. В этой статье мы рассмотрим, как быстро и точно определить, какие модули PHP установлены в вашей системе.
Этот скрипт выведет информацию о PHP, включая списки активных модулей, пути к их настройкам и другие параметры. Однако стоит отметить, что эта информация будет доступна только для пользователя с правами доступа к серверу.
Проверка установленных модулей через командную строку
Откройте терминал и выполните команду php -m
. Она выведет список всех активных расширений, включая встроенные и загружаемые модули.
Если необходимо отфильтровать только загружаемые модули, используйте команду php -m | grep -vE "^\s*$|^\[|^Core|^date|^libxml"
. Это исключит базовые и системные модули.
Для получения информации о конкретном модуле введите php -i | grep имя_модуля
. Это покажет параметры конфигурации и путь к модулю, если он загружается как расширение.
Если на сервере установлено несколько версий PHP, уточните используемую командой which php
и проверьте путь. Для конкретной версии используйте, например, php8.1 -m
.
Для модулей, установленных через пакетный менеджер (например, apt), выполните dpkg -l | grep php
на Debian/Ubuntu или rpm -qa | grep php
на CentOS.
Использование функции phpinfo() для получения списка модулей
Создайте файл с расширением .php
, например info.php
, и вставьте в него строку:
<?php phpinfo(); ?>
Разместите файл в корневой директории веб-сервера и откройте его в браузере. В результатах найдите разделы, озаглавленные именами расширений, например mbstring, curl, mysqli. Их наличие означает, что модули активны.
Чтобы быстро определить, загружен ли конкретный модуль, используйте поиск по странице (Ctrl+F) и введите его название. Например, поиск по слову gd покажет, установлен ли модуль обработки графики.
После использования удалите файл info.php
, чтобы предотвратить утечку информации о конфигурации сервера.
Как найти путь к конфигурационному файлу php.ini
Альтернативный способ – использовать встроенную функцию PHP phpinfo()
. Создайте файл с расширением .php
, добавьте в него строку <?php phpinfo(); ?>
и откройте его в браузере. Найдите строку Loaded Configuration File – там указан абсолютный путь к используемому конфигурационному файлу.
Если на сервере установлено несколько версий PHP, путь к php.ini
может отличаться в зависимости от используемой версии и режима (CLI, Apache, FPM). Уточняйте активную версию командой php -v
или через phpinfo()
, затем проверьте соответствующий путь через php --ini
или в настройках веб-сервера.
Анализ модулей с помощью скрипта PHP и функции get_loaded_extensions()
Для получения точного списка загруженных PHP-модулей можно использовать встроенную функцию get_loaded_extensions()
. Она возвращает массив с именами всех подключённых расширений, включая как системные, так и загруженные вручную через php.ini
.
Пример скрипта:
<?php
$extensions = get_loaded_extensions();
sort($extensions);
foreach ($extensions as $ext) {
echo $ext . "<br>";
}
?>
Функция не требует параметров и возвращает только активные модули. Для сортировки списка удобно использовать sort()
, чтобы упростить визуальный анализ.
Если необходимо получить информацию о расширениях, загруженных через Zend Engine, передайте true
в качестве параметра:
<?php
$zend_extensions = get_loaded_extensions(true);
foreach ($zend_extensions as $ext) {
echo $ext . "<br>";
}
?>
Функция работает одинаково в CLI и через веб-сервер. При разных конфигурациях могут отличаться загруженные модули, особенно при наличии отдельных php.ini
для CLI и Apache или Nginx.
Проверка версии PHP и доступных модулей в различных окружениях
Для точной диагностики окружения необходимо учитывать тип доступа: командная строка, веб-интерфейс или панель управления хостинга.
- Командная строка (CLI):
- Узнать версию:
php -v
- Просмотреть модули:
php -m
- Узнать версию:
- Веб-сервер (Apache, Nginx):
- Создать файл, например
info.php
, с содержимым:<?php phpinfo(); ?>
- Открыть его через браузер для получения списка модулей и текущей версии
- Удалить файл после использования для исключения утечек информации
- Создать файл, например
- Хостинг с панелью управления (например, cPanel, Plesk):
- Открыть раздел с настройками PHP
- Обычно доступен выбор версии и включение/отключение модулей через графический интерфейс
Если используются виртуальные окружения (Docker, Vagrant), проверка выполняется внутри контейнера или виртуальной машины теми же командами CLI. Для Docker: docker exec -it <container_name> php -m
.
Использование phpMyAdmin для просмотра списка модулей PHP
Откройте phpMyAdmin и перейдите в раздел «Сведения о сервере» в правом верхнем углу интерфейса. В появившемся меню выберите вкладку «Информация о PHP» (phpinfo).
Для быстрого поиска используйте сочетание клавиш Ctrl+F и введите название интересующего расширения. Обратите внимание на разделы Loaded Configuration File
и Scan this dir for additional .ini files
– они указывают, откуда загружаются настройки модулей.
Этот способ позволяет убедиться в загрузке модулей без доступа к консоли или конфигурационным файлам.
Как обновить или добавить модули PHP через менеджер пакетов
Для управления модулями PHP в системах на базе Debian или Ubuntu используется apt
, в CentOS, RHEL и Fedora – dnf
или yum
. Ниже приведены конкретные команды для установки и обновления модулей.
- Обновить список пакетов:
sudo apt update
– для Debian/Ubuntusudo dnf check-update
– для Fedora/CentOS 8+sudo yum check-update
– для CentOS 7
- Найти доступные модули PHP:
apt search php-
dnf search php
yum search php
- Установить модуль:
sudo apt install php-mbstring
sudo dnf install php-mbstring
sudo yum install php-mbstring
- Обновить уже установленные модули:
sudo apt upgrade php-*
sudo dnf upgrade php-*
sudo yum update php-*
- После установки перезапустить веб-сервер:
sudo systemctl restart apache2
– для Apachesudo systemctl restart php-fpm
– для PHP-FPM
Для работы с конкретной версией PHP используйте точное имя пакета, например php8.2-mysql
. Убедитесь, что репозиторий содержит нужные версии, иначе добавьте PPA (в Ubuntu) или EPEL (в CentOS).
Вопрос-ответ:
Как посмотреть все установленные модули PHP на сервере?
Чтобы узнать список всех установленных модулей PHP, можно использовать команду `php -m` в командной строке. Эта команда отобразит полный список расширений, активированных в текущей версии PHP. Также можно использовать команду `php -i`, которая предоставит более подробную информацию о конфигурации PHP, включая установленные модули, если прокрутить вывод до секции «Loaded Configuration File» и «Additional .ini files parsed». Другой способ — создать скрипт PHP с функцией `phpinfo()`, который выведет подробную информацию о текущей настройке PHP, включая все установленные расширения.