Установка пакетов PECL

Задача
Необходимо инсталлировать пакет PECL; в результате инсталляции будет собрано расширение PHP, написанное на языке C, используемое затем как динамическая библиотека PHP.

Решение
Убедитесь, что у вас есть все необходимые библиотеки расширений, а затем выполните команду install менеджера пакетов PEAR:

% pear install xmms

Для того чтобы использовать расширение из PHP, надо загрузить его с помощью функции dl():

dl('xmms.so');

Обсуждение
Внешне процесс инсталляции пакетов PECL схож с процессом установки кода пакетов PEAR, написанных на PHP. Однако задачи, выполняемые при этом неявно, значительно отличаются. Поскольку расширения PECL написаны на языке C, менеджер пакетов должен скомпилировать и сконфигурировать пакет для работы с уже инсталлированной версией PHP. Поэтому в настоящее время можно собрать пакеты PECL на UNIX-машинах и на тех Windows-машинах, где установлена среда разработки MSDev.

В отличие от пакетов PEAR, разработанных на PHP, расширения PECL сами не информируют пользователя об отсутствии той или иной библиотеки, необходимой для установки расширения.


Ответственность за предварительную инсталляцию таких файлов лежит на пользователе. Если собрать расширение PECL почему-либо не удается, то надо почитать файл README и документацию, входящую в состав пакета. Менеджер пакетов инсталлирует файлы документации в каталог docs иерархии PEAR.

При инсталляции расширения PECL менеджер пакетов PEAR загружает файл, распаковывает его, запускает программу phpize, чтобы сконфигурировать расширение под текущую версию PHP, установленную на вашей машине, и только затем собирает и инсталлирует расширение. В процессе установки он может запросить вас о местоположении необходимых библиотек:

% pear install xmms
downloading xmms-0.2.tgz ...
...done: 11,968 bytes
4 source files, building
running: phpize
PHP Api Version : 20020307
Zend Module Api No : 20020429
Zend Extension Api No : 20020731
Xmms library install dir? [autodetect] :
building in /var/tmp/pear-build-adam/xmms-0.2
running: /tmp/pearKIv63P/xmms-0.2/configure --with-xmms
running: make
xmms.so copied to /tmp/pearKIv63P/xmms-0.2/xmms.so
install ok: xmms 0.2

Если библиотеки в вашей системе расположены стандартным образом, то просто нажмите на клавишу Return.


Это приведет к выбору опции autodetect. Теперь PHP отыщет библиотеки и подключит их. При стандартном расположении нет необходимости явно вводить путь, как это показано выше на примере библиотеки xmms.

Расширения PECL располагаются не в тех местах, где хранятся остальные, не-PECL пакеты. Для того чтобы запускать и использовать pear, необходимо иметь право записи в каталог расширений PHP. Неоторые пакеты, такие как xmms, инсталлируют файлы в тот же каталог, в котором находится и интерпретатор PHP. Вследствие этого может потребоваться инсталлировать эти пакеты от имени того же пользователя, под которым был установлен PHP. Кроме того, надо проверить права выполнения для этих файлов. Большинство файлов PEAR неисполняемые, поэтому ваша маска (umask) может не установить необходимый набор прав доступа для исполняемых файлов.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Документирование классов с помощью PHPDoc
Нахождение пакетов PEAR
Обновление пакетов PEAR
Поиск информации о пакете
Работа с менеджером пакетов PEAR

Вернуться в раздел: PHP / 21. PEAR