Раздел помощи SpaceWeb

Установка модулей PEAR

05 авг, 2024

PEAR — это репозиторий классов (модулей) языка PHP, список доступных модулей можно увидеть на её официальном сайте. Установка модулей из данного репозитория на виртуальном хостинге возможна через официальную утилиту командной строки pear.

  1. Использование PEAR с PHP 7.0 и новее
  2. Использование PEAR с PHP 5.6

 На серверах виртуального хостинга по умолчанию доступна команда pear, но она работает только для версий PHP 5.2-5.6 включительно. Для установки модулей на PHP 7.0 и новее необходимо установить последнюю версию утилиты на аккаунт по инструкции ниже. Одновременная работа системной утилиты pear и утилиты, установленной локально, в рамках одного аккаунта не гарантируется.

Использование PEAR с PHP 7.0 и новее

Предварительная настройка

Перед установкой первого модуля предварительно необходимо установить последнюю версию утилиты pear, используя официальный установщик в консоли SSH в домашней директории:

1. Загрузить установщик

wget https://pear.php.net/go-pear.phar

2. Запустить установку

php7.4 go-pear.phar

На первом шаге можно выбрать все параметры по умолчанию, на втором на вопрос "Would you like to alter php.ini </etc/php/cli-php7.4/php.ini>? [Y/n]" необходимо ввести символ "n" (нет). На третьем шаге нужно подтвердить установку клавишей Enter.

3. Добавить путь к утилите в переменную $PATH, чтобы был доступен её запуск из любой папки на аккаунте

Добавьте в файл .profile в корне аккаунта строку вида:

export PATH=$HOME/pear/bin:$PATH

Если файла .profile в корне аккаунта нет, его необходимо предварительно создать.

4. Выйти из SSH-сессии и войти заново для применения изменений в $PATH

5. Обновить данные репозитория

pear channel-update pear.php.net

Установка модулей

Установка производится командой вида pear install -o <имя_модуля>. К примеру, установка пакета mail:

$ pear install -o mail
Did not download optional dependencies: pear/Net_SMTP, use --alldeps to download automatically
pear/Mail can optionally use package "pear/Net_SMTP" (version >= 1.10.0)
downloading Mail-1.5.0.tgz ...
Starting to download Mail-1.5.0.tgz (23,221 bytes)
........done: 23,221 bytes
install ok: channel://pear.php.net/Mail-1.5.0

Указание пути до папки c модулями в include_path

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

php_value include_path .:/home/<первая_буква_логина>/<логин>/pear/share/pear

в которую необходимо подставить данные в соответствии с вашим аккаунтом. Например, для логина testlogin директива будет выглядеть так:

php_value include_path .:/home/t/testlogin/pear/share/pear

Как альтернативный вариант, можно добавить указание пути к папке в начало PHP-скрипта, такой строкой:

ini_set('include_path','.:/home/t/testlogin/pear/share/pear');

Использование PEAR с PHP 5.6

Предварительная настройка

Перед установкой первого модуля предварительно необходимо создать файл с настройками в домашней директории такой командой по SSH (выполняется также из домашней директории):

pear config-create ~ .pearrc

Затем следует скопировать стандартные файлы PEAR, чтобы копия хранилась в домашнем каталоге:

PHP_PEAR_PHP_BIN=php5.6 pear install -o PEAR

Установка модулей

Установка производится командой вида PHP_PEAR_PHP_BIN=php5.6 pear install -o <имя_модуля>. К примеру, установка пакета File_Find:

$ PHP_PEAR_PHP_BIN=php5.6 pear install -o File_Find
downloading File_Find-1.3.3.tgz ...
Starting to download File_Find-1.3.3.tgz (8,212 bytes)
.....done: 8,212 bytes
install ok: channel://pear.php.net/File_Find-1.3.3

Указание пути до папки с модулями в include_path

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

php_value include_path .:/home/<первая_буква_логина>/<логин>/pear/php

в которую необходимо подставить данные в соответствии с вашим аккаунтом. Например, для логина testlogin директива будет выглядеть так:

php_value include_path .:/home/t/testlogin/pear/php

Как альтернативный вариант, можно добавить указание пути к папке в начало PHP-скрипта, такой строкой:

ini_set('include_path','.:/home/t/testlogin/pear/php');