Что такое PEAR и как его установить?
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.
В тему:
поставь нормальные кавычки в тексте кода, а то я полчаса думал почему же это пеар не заработал после установки
нет, December 23, 2009 3:00 pmПоставил
admin, January 21, 2010 11:45 amАвтору – спасибо!
По всему инету написаны тысяча манов как установить Pear. Ни один не помог.
Тут же все написано по-человечески.
Всё работает. Спасибо еще раз!
Я тоже изучил все эти мануалы. И остановился на мануале с офф.сайта. Его перевод с английского я протестировал и выложил здесь. 🙂
admin, February 8, 2010 9:32 amНе пойму в чем дело… 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 !”
В чем может быть дело???
у меня тоже самое, помогите пожалуйста. в чем дело?
Алина, April 29, 2010 1:07 pmВ папке z:\home\myhost\www найдите файл pear.conf и переименуйте его в pear.ini. Должно помочь.
admin, April 29, 2010 1:52 pmСпасибо большое — классное описание P.S В начале пытался установить на denwer с php 5.3 но выдало кучу ошибок deprecated… И вообще не знаю почему, но новый denwer глючит ужасно, наверное из за 7 windows, а вот с php 5.2 все гут получилось
tylik, May 1, 2010 12:15 amКстати, вот здесь http://www.php.net/manual/en/migration53.deprecated.php описаны все устаревшие(deprecated) коснтрукции, ставшие такими по сравнению с версией 5.2. Да плюс к этому, в версии 5.3 появился вообще уровень ошибок E_DEPRECATED, таким образом PHP 5.3 выдает такие же диагностические сообщения при использовании устаревших конструкций, как раньше он выдавал при возникновении ошибок и предупреждений. А таких устаревших конструкций теперь: 7 ini-определений, 18 функций.
Так что в Вашем случае обилие ошибок связано думаю именно с версией PHP, а не с версией Windows.
Спасибо, классное описание, помогло.
Респект автору!
Установила 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) выдается. Сижу третий день над этим. Помогите пожалуйста!
Такая же проблема может не ставиться так на php5???
__________________________
Fatal error: No PEAR.php in supplied PEAR directory: @pear_dir@ in C:\www\tab.tubez.ru\index.php on line 24
Татьяна просто отредактируете index.php $pear_dir = путь к папке PEAR
Степан, November 23, 2010 2:42 pmСпасибо. Все стало. Не подскажите одну вещь: при инсталяции через Веб-интерфейс PEAR-а пакета “phpDocumentor”, как запустить последнего? Если просто скачать архив phpDocumentor не PEAR-овский, как я прнимаю, и распаковать его, то имеется phpDocumentor/index.html -> веб интерфейс phpDocumentor-а. А как к такому же интерфейсу добраться при установке через PEAR?
p.s. Также встречается ручная установка PEAR, там из архива PEAR один только PEAR.php оставляют, можете объяснить, для чего собственно нужны остальные файлы?
Спасибо большое! Мучался долго! Побольше бы таких полезных статей
Евгений, June 19, 2011 7:12 pmкак это исправить Fatal error: No PEAR.php in supplied PEAR directory: in Z:\home\localhost\www\index.php on line 24
после запуска index.php послу установки peara
По вашим многочисленным просьбам разобрался, как бороться с ошибкой Fatal error: No PEAR.php in supplied PEAR directory. Поправки ищите в статье.
Вячеслав Гринин, June 23, 2011 9:29 amА для тех, у кого возникает огромное количество ошибок DEPRECATED, подкорректируйте файл php.ini, добавьте или отредактируйте в нем параметр error_reporting =E_ALL & ~E_DEPRECATED , чтобы ошибки DEPRECATED больше не отображались. Что уж поделаешь, PEAR использует ряд устаревших инструкций, которые все еще работают в PHP 5, однако сообщают о себе, если у вас установлен уровень отображения таких ошибок.
Вячеслав Гринин, June 23, 2011 9:33 amРаботает.. Спасибо, Вячеслав!:)
Евгений, June 23, 2011 12:27 pmАга, пожалуйста.
Вячеслав Гринин, June 23, 2011 5:17 pmя даже не могу начать по нормальному установку.
при запуске 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А для тех, у кого возникает огромное количество ошибок DEPRECATED, подкорректируйте файл php.ini, добавьте или отредактируйте в нем параметр error_reporting =E_ALL & ~E_DEPRECATED , чтобы ошибки DEPRECATED больше не отображались. Что уж поделаешь, PEAR использует ряд устаревших инструкций, которые все еще работают в PHP 5, однако сообщают о себе, если у вас установлен уровень отображения таких ошибок.
Вячеслав Гринин, October 3, 2011 10:03 amСпасибо за полезный топ.
nizamovich, October 8, 2011 2:57 pmя даже не могу начать по нормальному установку.
при запуске 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
Настройка ини-файла должна помочь. Проверьте, что вы корректируете именно тот файл, который учитывается php при запуске. Попробуйте поиском найти все файлы php.ini в вашей системе. Они могут быть в инсталляционной папке PHP или в папке Windows. Внесите изменения последовательно в каждый и проверьте будет ли работать установка pear.
Вячеслав Гринин, December 6, 2011 9:32 amЗдраствуйте
Ставлю по Вашей инструкции и возникает ошибка:
Fatal error: Class ‘PEAR’ not found in Z:\home\localhost\www\Parser\temp\Archive\Tar.php on line 57
Такое ощущение, что вы поставили не то и не туда…
Вячеслав Гринин, February 9, 2012 8:32 pmХм, тоже самое.
В index.php внес вручную адреса, как указывал автор.. Не работает-с..
Извините, что так редко тут отвечаю. Но меня эта тема удивляет каждый раз. 🙂 Вроде все ставится легко, а тут каждый раз что-то новенькое читатели найдут.
Вячеслав Гринин, 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).
Может все с разными версиями связано. Новый PHP – новые особенности – установка PEAR отваливается от неожиданности. 🙂 Буду благодарен, если вы найдете что нужно исправить в моем алгоритме установки, или найдете другой способ установить PEAR, и намекнете здесь, что вы сделали.
Вячеслав Гринин, February 13, 2012 10:29 amВообще, судя по постоянным трудностям при установке, мой способ не является очень хорошим. Поделитесь лучшим.
Вячеслав Гринин, February 13, 2012 10:30 amВнес изменения в 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
http://www.css.kiev.ua/ustanovka-pear/
вот тут проще. Сохранил файл в директорию php5
Андрей, February 29, 2012 10:31 amспасибо
Вячеслав Гринин, February 29, 2012 8:09 pmИнтересно, у меня получилось в принципе, ни без маразма конечно, но вопрос мой заключается в том “Что дальше-то делать?”, проверил я вывело bool/true, а как пакет подключить можно пример и как использовать, напр. Quick_Form, а тут установка есть, а собственно показ того чего можно сделать с этим PEAR не обусловлен.
Tol, March 21, 2012 6:18 pmFatal error: Class ‘PEAR’ not found in Z:\home\host\www\go-pear.php on line 696. что делать когда такая ошибка
Сергей, May 23, 2012 5:01 pmСуществует следующая проблема:
PEAR встал четко, Quick_Form2 тоже установился нормально. Далее начинаем работать с Quick_Form2 и вот тут начинается свистопляска: все пути в скриптах Quick_Form2 относительные и поэтому не находятся нужные файлы. Начал править скрипты, там где файлы из одной директории вроде нормально, но есть файлы и директориями выше, и эту проблему вроде решил, но когда пути к файлам начали собираться программно, я подумал, что нужно что-то менять глобально. Что делать? Как заставить правильно работать все это с относительными путями?
PEAR установлен /var/www/vhosts/u2359979.plsk.regruhosting.ru/site2/PEAR
Quick_Form2 соответственно /var/www/vhosts/u2359979.plsk.regruhosting.ru/site2/PEAR/HTML/QuickForm2
Ну и исходный скрипт стартует /var/www/vhosts/u2359979.plsk.regruhosting.ru/site2/test.php
Владимир, July 10, 2012 11:51 amСпасибо большое автору, на офф сайте pear, написано все через одно место! Здесь же все понятно! Только я инсталли в родну денверску директорию test1.ru, просто я на этом хосте раскладываюсь! Спасибо еще раз!
vitali, July 20, 2012 1:10 pmЗдравствуйте!
Очень прошу помочь.При инсталяции появляется:
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)
Как можно это исправить? Пробовала вручную создать папки не помогает. Очень надеюсь на помощь.
Как попасть в админику? при обращении по адресу сайт.ру/admin/ выдаёт 404 ошибку. Почему? каталог есть. файлы есть.
игорь, August 6, 2015 3:43 pmСохраняю pear, ввожу в браузере http://myhost/go-pear.php > http://prntscr.com/axv8qy
Что делать?