Установка расширений PHP

Установить расширение PHP можно из репозитория или из исходников с компиляцией на самом сервере. Ко второму варианту прибегают когда нельзя использовать первый — если расширения нет в репозитории.

Как установить расширение PHP: из репозитория и исходников

В большинстве случаев расширение можно установить из репозитория. В репозитории включаются все популярные расширения.

Выяснить, что доступно для установки можно так:

apt-cache search php7.0

[…skipped…]

php7.0-mbstring — MBSTRING module for PHP
php7.0-mcrypt — libmcrypt module for PHP
php7.0-mysql — MySQL module for PHP
php7.0-odbc — ODBC module for PHP
php7.0-opcache — Zend OpCache module for PHP
php7.0-pgsql — PostgreSQL module for PHP
php7.0-phpdbg — server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-pspell — pspell module for PHP

[…skipped…]

Производится поиск по маске, среди результатов непосредственно php7.0 и все расширения.

Так, если планируется работа с PostgreSQL, то нужно установить php7.0-pgsql.

Любая установка — потенциально опасная операция, поэтому сначала ее следует проводить с ключем —dry-run. В этом случае будут проверены зависимости, но изменений в систему фактически не вносится.

apt-get install —dry-run php7.0-pgsql

Если ошибок не возникло, но расширение можно устанавливать

apt-get install php7.0-pgsql

Теперь расширение php7.0-pgsql установлено, осталось его подключить.

Сборка расширений PHP

Сборку можно выполнять на рабочей машине, но лучше использовать для этого другой сервер с аналогичной конфигурацией.

Компиляция нужна для расширений, отсутствующих в репозитрии и встречающихся реже.

Исходники расширений можно найти на сайте https://pecl.php.net/

Допустим, что требуется stomp (https://pecl.php.net/package/stomp)

Нужно скачать исходники

wget https://pecl.php.net/get/stomp-2.0.2.tgz

Затем распаковать архив

tar xvf stomp-2.0.2.tgz

И перейти в каталог с файлами расширения

cd stomp-2.0.2

Далее при условии, что на сервере используется одна версия PHP:

phpize

Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100412
Zend Extension Api No: 20100412

Если больше одной версии — потребуется указывать phpize под конкретную версию и phpconfig. Это бинарные файлы, использующиеся для сборки.

Ошибки в логах после сборки появляются  про разные версии PHP Api Version и Zend Extension Api No говорят о не тех использованных phpize и phpconfig.

При отсутствии phpize устанавливается пакет php5-dev

apt-get install php5-dev

./configure

[…skipped…]

configure: creating ./config.status
config.status: creating config.h
config.status: executing libtool commands

Далее компиляция

make

Build complete.
Don't forget to run 'make test'.

make test

make install

Installing shared extensions: /usr/lib/php7.1.21/20160303/

В результате получаем файл /usr/lib/php7.1.21/20160303/stomp.so, который нужно подключить в php.ini

При условии, что используется php той версии, для которой собрано расширение и конфигурационный файл размещается по пути /etc/php/php.ini:

echo «extension=stomp.so» >> /etc/php/php.ini

Далее все процессы можно завершить, чтобы быстрее увидеть результат

pkill php

Categories: