Что такое PEAR и как его установить?

Вячеслав Гринин, September 18, 2009

PEAR – это аббревиатура для “PHP Extension and Application Repository“.
PEAR это:

  • Структурированная библиотека открытого кода для пользователей PHP.
  • Система распространения кода.
  • Стандарт стиля написания PHP-кода, определенный здесь.
  • Библиотека PECL(PHP Extension Community Library)

Цель PEAR состоит в предоставлении компонентов многократного использования.
Код PEAR разделен на  “пакеты“. Каждый пакет – это отдельный проект со своей собственной командой разработки, версией, документацией и определенными связями и зависимостями с другими пакетами. Пакеты распространяются в виде gzip-файлов с файлом описания внутри, и устанавливаются при помощи инсталлятора PEAR.
Все пакеты PEAR зарегистрированы на центрельном сервере pear.php.net и загружаются с него же.
Сторонние серверы, называемые “каналами”, также распространяют пакеты, которые могут быть установлены инсталлятором PEAR.
PECL является отдельным проектом распространения расширений PHP (оттранслированных программ на C). Расширения PECL также распространятся в виде пакетов и могут быть установлены посредством инсталлятора PEAR.

Установка PEAR.
Для Windows.
1) Сначала устанавливаем Джентльменский Набор Web-Разработчика. Это очень полезный пакет, который за несколько минут установит на вашем компьютере web-сервер Apache и PHP.
2) В папке z:/home/ инсталляционной директории denwer-а создаем папку myhost (которая будет представлять “доменное имя” нашего локального сайта), а в ней – папку www. Далее я буду исходить из того, что ваш denwer функционирует под псевдонимом диска Z:
3) Идем на http://pear.php.net/go-pear. Это исходник инсталлятора, который установит PEAR на ваш компьютер. Сохраняем его в папку z:/home/myhost/www под именем go-pear.php
4) Запускаем в браузере http://myhost/go-pear.php и проходим весь путь инсталляции. Собственно, там нет ничего сложного, в основном приходится кликать на ссылку далее(кроме параметров конфигурации, смотрите ниже особенности их настройки). На последнем этапе установки мы увидим прогресс-бар, показывающий ход загрузки файлов на ваш компьютер.
5) открываем php.ini(у меня он лежит вот здесь Z:\usr\local\php5\) находим строку include_path и правим ее вот так include_path = “.;Z:\home\myhost\www\PEAR”
6) Рестартанем denwer И вот PEAR в нашем распоряжении

Проверим, работает ли PEAR.
В директории PEAR создадим файл check.php с содержимым:

<?php
require_once "System.php";
var_dump(class_exists("System"));
?>

И вызовем в браузере http://myhost/PEAR/check.php/. И если мы увидим bool(true) значит PEAR установился правильно.

Установка на UNIX-хостинг не отличается новизной, дл этого достаточно залить на хостинг файл go-pear.php, запустить его из браузера и пройти через все шаги инсталляции.

Теперь, запросив в браузере путь http://myhost/index.php мы попадем в веб-консоль управления пакетами PEAR. Она позволяет нам устанавливать в PEAR новые пакеты и конфигурировать сам PEAR. В нем также есть удобная система поиска пакетов по ключевым словам или по названию пакета.

И для тех, кто уже установил PEAR на хостинге, и теперь он доступен всем и каждому, дам совет защитить директорию с инсталляцией PEAR. Эта процедура подробно описана в статье Защита сайта с помощью .htaccess и .htpasswd.

UPD: К сожалению, инсталлятор слегка недоделан и поэтому значения по умолчанию в нем не всегда корректны. Из-за чего и возникают проблемы при установке под Windows. На втором шаге инсталлятора необходимо подкорректировать параметры установки, по умолчанию инсталлятор подставляет неправильные слеши и нам требуется поменять их.

Обратите внимание на 2, 4, 8 и 10 параметры, в них необходимо поменять слеши на другие.

UPD: У тех, кто устанавливает PEAR под Windows часто при вызове index.php возникает ошибка Fatal error: No PEAR.php in supplied PEAR directory: in Z:\home\localhost\www\index.php on line 24. Расскажу, как с ней бороться. Возникает она потому что инсталлятор не прописывает в файл index.php все необходимые пути, что не дает ему запустить Web Frontend, хотя сам PEAR при этом – работоспособен! Чтобы избавиться от этой ошибки и запустить Web Frontend Нужно исправить в index.php два параметра:
1) $pear_dir = ‘Z:\home\myhost\www\PEAR’;
2) $pear_user_config = ‘Z:\home\myhost\www\pear.conf’;
Web-сервер запущенный из-под Denwer не может найти файл pear.conf содержащий в себе все те параметры, что мы ввели на шаге конфигурирования инсталлятора PEAR (смотрите рисунок выше), и параметром $pear_user_config мы указываем ему точное расположение файла конфигурации. Ну и по непонятным мне причинам (наверное, инсталлятору не положено заниматься этой черной работой :) ) здесь не прописан параметр $pear_dir, указывающий на директорию инсталляции PEAR. После исправления этих параметров ваш PEAR и Web Frontend запустятся. Теперь вы можете приступать к конфигурированию дополнительных пакетов PEAR.

В тему:

44комментария

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

нет, December 23, 2009 3:00 pm Reply

Поставил

admin, January 21, 2010 11:45 am Reply

Автору – спасибо!
По всему инету написаны тысяча манов как установить Pear. Ни один не помог.
Тут же все написано по-человечески.
Всё работает. Спасибо еще раз!

Symbiot, February 6, 2010 10:38 pm Reply

Я тоже изучил все эти мануалы. И остановился на мануале с офф.сайта. Его перевод с английского я протестировал и выложил здесь. :)

admin, February 8, 2010 9:32 am Reply

Не пойму в чем дело… bool(true) есть… а когда проходишь по этой ссылки “http://myhost/index.php”, вылазиет ошибка:
“Warning: Can not find config file, please specify the $pear_user_config variable in /index.php
Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the ‘data_dir’ of your config file (C:\php5\pear\data) points to the correct location !”
В чем может быть дело???

Александр, March 17, 2010 3:45 pm Reply

у меня тоже самое, помогите пожалуйста. в чем дело?

Алина, April 29, 2010 1:07 pm Reply

В папке z:\home\myhost\www найдите файл pear.conf и переименуйте его в pear.ini. Должно помочь.

admin, April 29, 2010 1:52 pm Reply

Спасибо большое — классное описание P.S В начале пытался установить на denwer с php 5.3 но выдало кучу ошибок deprecated… И вообще не знаю почему, но новый denwer глючит ужасно, наверное из за 7 windows, а вот с php 5.2 все гут получилось

tylik, May 1, 2010 12:15 am Reply

Кстати, вот здесь http://www.php.net/manual/en/migration53.deprecated.php описаны все устаревшие(deprecated) коснтрукции, ставшие такими по сравнению с версией 5.2. Да плюс к этому, в версии 5.3 появился вообще уровень ошибок E_DEPRECATED, таким образом PHP 5.3 выдает такие же диагностические сообщения при использовании устаревших конструкций, как раньше он выдавал при возникновении ошибок и предупреждений. А таких устаревших конструкций теперь: 7 ini-определений, 18 функций.
Так что в Вашем случае обилие ошибок связано думаю именно с версией PHP, а не с версией Windows.

admin, May 1, 2010 11:00 am Reply

Спасибо, классное описание, помогло.
Респект автору!

realmajor, September 26, 2010 11:06 pm Reply

Установила pear по Вашей инструкции, в конце установки выдает такую ошибку: Fatal error: No PEAR.php in supplied PEAR directory: @pear_dir@ in Z:\home\localhost\www\condorgm.ru\index.php on line 24
смотрю код по указанному адресу:
// $pear_dir must point to a valid PEAR install (=contains PEAR.php)
$pear_dir = ‘@pear_dir@’; // default of install

// OPTIONAL: If you have a config file at a non-standard location,
// uncomment and supply it here:
// $pear_user_config = ”;

// OPTIONAL: If you have protected this webfrontend with a password in a
// custom way, then uncomment to disable the ‘not protected’ warning:
//$pear_frontweb_protected = true;

/***********************************************************
* Following code tests $pear_dir and loads the webfrontend:
*/
if (!file_exists($pear_dir.’/PEAR.php’)) {
trigger_error(‘No PEAR.php in supplied PEAR directory: ‘.$pear_dir,
(24 строка) E_USER_ERROR);
}
ini_set(‘include_path’, $pear_dir);
require_once(‘PEAR.php’);

// Include WebInstaller
putenv(‘PHP_PEAR_INSTALL_DIR=’.$pear_dir); // needed if unexisting config
require_once(‘pearfrontendweb.php’);
При проверке bool(true) выдается. Сижу третий день над этим. Помогите пожалуйста!

Татьяна, November 15, 2010 11:24 pm Reply

Такая же проблема может не ставиться так на php5???
__________________________
Fatal error: No PEAR.php in supplied PEAR directory: @pear_dir@ in C:\www\tab.tubez.ru\index.php on line 24

Степан, November 23, 2010 2:39 pm Reply

Татьяна просто отредактируете index.php $pear_dir = путь к папке PEAR

Степан, November 23, 2010 2:42 pm Reply

Спасибо. Все стало. Не подскажите одну вещь: при инсталяции через Веб-интерфейс PEAR-а пакета “phpDocumentor”, как запустить последнего? Если просто скачать архив phpDocumentor не PEAR-овский, как я прнимаю, и распаковать его, то имеется phpDocumentor/index.html -> веб интерфейс phpDocumentor-а. А как к такому же интерфейсу добраться при установке через PEAR?
p.s. Также встречается ручная установка PEAR, там из архива PEAR один только PEAR.php оставляют, можете объяснить, для чего собственно нужны остальные файлы?

Dante, November 25, 2010 12:24 am Reply

Спасибо большое! Мучался долго! Побольше бы таких полезных статей

Евгений, June 19, 2011 7:12 pm Reply

как это исправить Fatal error: No PEAR.php in supplied PEAR directory: in Z:\home\localhost\www\index.php on line 24
после запуска index.php послу установки peara

Евгений, June 22, 2011 5:00 pm Reply

По вашим многочисленным просьбам разобрался, как бороться с ошибкой Fatal error: No PEAR.php in supplied PEAR directory. Поправки ищите в статье.

Вячеслав Гринин, June 23, 2011 9:29 am Reply

А для тех, у кого возникает огромное количество ошибок DEPRECATED, подкорректируйте файл php.ini, добавьте или отредактируйте в нем параметр error_reporting =E_ALL & ~E_DEPRECATED , чтобы ошибки DEPRECATED больше не отображались. Что уж поделаешь, PEAR использует ряд устаревших инструкций, которые все еще работают в PHP 5, однако сообщают о себе, если у вас установлен уровень отображения таких ошибок.

Вячеслав Гринин, June 23, 2011 9:33 am Reply

Работает.. Спасибо, Вячеслав!:)

Евгений, June 23, 2011 12:27 pm Reply

Ага, пожалуйста.

Вячеслав Гринин, June 23, 2011 5:17 pm Reply

я даже не могу начать по нормальному установку.
при запуске go-pear.php зияет ошибка
“Deprecated: Assigning the return value of new by reference is deprecated in Z:\home\localhost\www\go-pear.php on line 733

Deprecated: Function ereg() is deprecated in Z:\home\localhost\www\go-pear.php on line 1414″

при этом приглашение в функцию установки есть. я жму “Next”, исправляю слэши, жму “Install” и установка виснет!

соответственно браузер ссылается на эти же ошибки. HELP!

Алексей, September 27, 2011 1:45 pm Reply

А для тех, у кого возникает огромное количество ошибок DEPRECATED, подкорректируйте файл php.ini, добавьте или отредактируйте в нем параметр error_reporting =E_ALL & ~E_DEPRECATED , чтобы ошибки DEPRECATED больше не отображались. Что уж поделаешь, PEAR использует ряд устаревших инструкций, которые все еще работают в PHP 5, однако сообщают о себе, если у вас установлен уровень отображения таких ошибок.

Вячеслав Гринин, October 3, 2011 10:03 am Reply

Спасибо за полезный топ.

nizamovich, October 8, 2011 2:57 pm Reply

я даже не могу начать по нормальному установку.
при запуске go-pear.php зияет ошибка
“Deprecated: Assigning the return value of new by reference is deprecated in Z:\home\localhost\www\go-pear.php on line 733

Deprecated: Function ereg() is deprecated in Z:\home\localhost\www\go-pear.php on line 1414″

при этом приглашение в функцию установки есть. я жму “Next”, исправляю слэши, жму “Install” и установка виснет!

соответственно браузер ссылается на эти же ошибки. HELP!
пробовал и так error_reporting =E_ALL & ~E_DEPRECATED
не помогает плиз help

vlatex, December 6, 2011 1:50 am Reply

Настройка ини-файла должна помочь. Проверьте, что вы корректируете именно тот файл, который учитывается php при запуске. Попробуйте поиском найти все файлы php.ini в вашей системе. Они могут быть в инсталляционной папке PHP или в папке Windows. Внесите изменения последовательно в каждый и проверьте будет ли работать установка pear.

Вячеслав Гринин, December 6, 2011 9:32 am Reply

Здраствуйте
Ставлю по Вашей инструкции и возникает ошибка:
Fatal error: Class ‘PEAR’ not found in Z:\home\localhost\www\Parser\temp\Archive\Tar.php on line 57

Стас, February 9, 2012 8:45 am Reply

Такое ощущение, что вы поставили не то и не туда…

Вячеслав Гринин, February 9, 2012 8:32 pm Reply

Хм, тоже самое.
В index.php внес вручную адреса, как указывал автор.. Не работает-с..

Dante, February 11, 2012 11:28 pm Reply

Извините, что так редко тут отвечаю. Но меня эта тема удивляет каждый раз. :) Вроде все ставится легко, а тут каждый раз что-то новенькое читатели найдут.

Вячеслав Гринин, February 12, 2012 8:54 pm

И кстати, пути тут не при чем, ошибка эта вываливается в процессе инсталла, а не при запросе к pear. На 15%. И, кстати, на 2 версиях Денвера проверено, на 5.2 и 5.3

Dante, February 13, 2012 9:15 am

Причем вывалививается с этой ошибкой не после, а в процессе инсталла, (15%). Проверял на 2 версиях Денвера, 5.2. и. 5.3. Как Вы тут его все поставили понятия не имею)

Dante, February 13, 2012 9:19 am

Тоже столкнулся с такой проблемой. Решение заключалось в выкачке нового файла go-pear.phar в директорию */php5/PEAR/ с сайта разработчика http://pear.php.net/go-pear.phar.
По видимому в этой версии какой-то баг. После замены файла все стало без проблем запуском go-pear.bat (юзаю Denwer).

Ara, March 2, 2012 10:22 pm Reply

Может все с разными версиями связано. Новый PHP – новые особенности – установка PEAR отваливается от неожиданности. :) Буду благодарен, если вы найдете что нужно исправить в моем алгоритме установки, или найдете другой способ установить PEAR, и намекнете здесь, что вы сделали.

Вячеслав Гринин, February 13, 2012 10:29 am Reply

Вообще, судя по постоянным трудностям при установке, мой способ не является очень хорошим. Поделитесь лучшим.

Вячеслав Гринин, February 13, 2012 10:30 am Reply

Внес изменения в ini файл, error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED, перезагрузил Денвер
но ошибки все-равно есть и не могу поставить Pear..
Deprecated: Function ereg() is deprecated in Z:\home\localhost\www\go-pear.php on line 1414
Starting installation …
Loading zlib: ok

Bootstrapping Installer……………….
Bootstrapping PEAR.php…………(remote) “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
An Exception Has Occurred
Unknown location: /pear/pear-core/branches/PEAR_1_4/PEAR.php

Андрей, February 29, 2012 10:18 am Reply

http://www.css.kiev.ua/ustanovka-pear/

вот тут проще. Сохранил файл в директорию php5

Андрей, February 29, 2012 10:31 am Reply

спасибо

Вячеслав Гринин, February 29, 2012 8:09 pm Reply

Интересно, у меня получилось в принципе, ни без маразма конечно, но вопрос мой заключается в том “Что дальше-то делать?”, проверил я вывело bool/true, а как пакет подключить можно пример и как использовать, напр. Quick_Form, а тут установка есть, а собственно показ того чего можно сделать с этим PEAR не обусловлен.

Tol, March 21, 2012 6:18 pm Reply

Fatal error: Class ‘PEAR’ not found in Z:\home\host\www\go-pear.php on line 696. что делать когда такая ошибка

Сергей, May 23, 2012 5:01 pm Reply

Существует следующая проблема:
PEAR встал четко, Quick_Form2 тоже установился нормально. Далее начинаем работать с Quick_Form2 и вот тут начинается свистопляска: все пути в скриптах Quick_Form2 относительные и поэтому не находятся нужные файлы. Начал править скрипты, там где файлы из одной директории вроде нормально, но есть файлы и директориями выше, и эту проблему вроде решил, но когда пути к файлам начали собираться программно, я подумал, что нужно что-то менять глобально. Что делать? Как заставить правильно работать все это с относительными путями?

Владимир, July 10, 2012 11:41 am Reply

PEAR установлен /var/www/vhosts/u2359979.plsk.regruhosting.ru/site2/PEAR
Quick_Form2 соответственно /var/www/vhosts/u2359979.plsk.regruhosting.ru/site2/PEAR/HTML/QuickForm2

Владимир, July 10, 2012 11:43 am Reply

Ну и исходный скрипт стартует /var/www/vhosts/u2359979.plsk.regruhosting.ru/site2/test.php

Владимир, July 10, 2012 11:51 am Reply

Спасибо большое автору, на офф сайте pear, написано все через одно место! Здесь же все понятно! Только я инсталли в родну денверску директорию test1.ru, просто я на этом хосте раскладываюсь! Спасибо еще раз!

vitali, July 20, 2012 1:10 pm Reply

Здравствуйте!
Очень прошу помочь.При инсталяции появляется:
Error

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://raw.github.com:443 (Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?) in X:\home\myhost\www\go-pear.php on line 1074

download of https://raw.github.com/pear/pear-core/master/PEAR5.php failed: Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP? (111448808)
Если исправляю параметры в index.php:1) $pear_dir = ‘Z:\home\myhost\www\PEAR’;
2) $pear_user_config = ‘Z:\home\myhost\www\pear.conf’;
,то появляется:
Configuration

Below is a suggested file layout for your new PEAR installation.
1. Installation prefix ($prefix)
2. Temporary files directory
FATAL ERROR! This directory does not exist and we can not create it. Create the directory manually or make sure we have full permission in its parent directory.
3. Binaries directory
ERROR! This directory does not exist and we can not create it. Create the directory manually or make sure we have full permission in its parent directory.
4. PHP code directory ($php_dir)
ERROR! This directory does not exist and we can not create it. Create the directory manually or make sure we have full permission in its parent directory.
5. Documentation base directory
ERROR! This directory does not exist and we can not create it. Create the directory manually or make sure we have full permission in its parent directory.
6. Data base directory
ERROR! This directory does not exist and we can not create it. Create the directory manually or make sure we have full permission in its parent directory.
7. Tests base directory
ERROR! This directory does not exist and we can not create it. Create the directory manually or make sure we have full permission in its parent directory.
8. PEAR Installer cache directory
ERROR! This directory does not exist and we can not create it. Create the directory manually or make sure we have full permission in its parent directory.
9. Cache TimeToLive
10. Filename of WebFrontend
ERROR! This file does not exist and we can not create it. Make sure we have full permission in its parent directory.
11. php.exe path, optional (CLI command tools)
Как можно это исправить? Пробовала вручную создать папки не помогает. Очень надеюсь на помощь.

Ольга, February 9, 2013 12:19 am Reply
Ваше имя
Ваш email*
Ваш сайт
Текст вашего комментария:

Поиск по блогу:
Подписаться:
Популярные:
Облако тегов:
Разное:
Счетчик: