Понадобился тут в одном PHP проекте RSS парсер. Саму RSS я уже генерировал, а вот парсить ещё не пробовал. Самостоятельно писать пока времени нет, потому решено было использовать парсер из PEAR. На IBM developerWorks есть отличная статья, после прочтения которой становится всё понятно (есть и на русском языке, но перевод там очень сильно хромает).
Для работы требуется пакет XML_RSS, который зависит от XML_Parser, для которого, в свою очередь, требуется PHP версии не меньше 4.2.0 и сам PEAR. Когда-то я пытался поставить pear, но в тот раз так и не понял как это делать. С тех пор у меня появилась привычка сначала читать readme или intall. Install свежескачанного pear 1.7.2 гласил, что одним из способов установки является сохранение главной страницы go-pear.org как go-pear.php и запуск её в браузере. go-pear.org уже на тот момент заняли киберсквоттеры, но нужную страничку можно найти на http://pear.php.net/go-pear. Сохранил страничку, залил на домашний хостинг, запустил. Стандартные параметры подошли, и pear успешно был установлен. (При установке на хостинге выдало Loading zlib: failed, остальное ok.) После установки добавил в php.ini к существующим include_path директорию, куда был установлен pear и перезапустил apache. На хостинге пришло прописать в .htaccess php_value include_path «.:/home/path-to-pear/PEAR»
Для работы мне нужны были XML_Parser и XML_RSS. Не знаю, может в Windows можно как-то по-другому устанавливать пакеты, но я просто скопировал Parser.php и RSS.php из архивов пакетов в папку XML, находящуюся в директории, куда был установлен pear. Позже установил нормально из web-интерфейса.
Проверил примеры из статьи, всё подключается и отлично работает.
UPD: Как позже выяснилось, pear при установке заменил мой index.php на свой. Это и был web-интерфейс, из которого устанавливаются пакеты. Имя файла можно задать в настройках при установке, за это отвечает пункт 10. Filename of WebFrontend. А лучше при установке указать отдельную папку (но не к основным файлам, они могут быть в директории, к которой нельзя обраться по http), т.к. надо будет защитить её паролем. Далее подразумевается, что скопировано в директорию webpear.
UPD2: Обозвал его webpear.php. При запуске выдал предупреждение и ошибку
Warning: Can not find config file, please specify the $pear_user_config variable in /webpear.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 !
Раскомментировал $pear_user_config в webpear.php и присвоил значение ..pear.conf. Заработало. При открытии страницы выводится предупреждение о безопасности:
Warning: This package management website is not protected with a password, this is a MAJOR security risk. Please read the README.
Далее, в папке с webpear.php делаем, как просят в readme:
htpasswd -c .htpasswd admin
(для windows это htpasswd.exe, которая поставляется с apache, лежит в папке bin установленного апача)
Следом
$ echo » AuthUserFile $(pwd)/.htpasswd AuthType Basic AuthName \»Web-based PEAR Frontend\» Require valid-user» > .htaccess
$(pwd) пропишет путь аккурат в нужную директорию. Если же будем делать это в основной директории, то содержимое .htaccess перезапишется. В Windows директорию пришлось заключить в кавычки.
В конфиге апача должна присутствовать строка AllowOverride AuthConfig. У меня она вызывала 500 Internal Server Error, поэтому сделал AllowOverride All (в соответствующем VirtualHost, внутри Directory)
Т.е. директория webpear содержит .htaccess, .htpasswd и webpear.php.
Но Warning всё равно появляется, поэтому в webpear/webpear.php нужно раскомментировать $pear_frontweb_protected = true; (как-нить надо разобраться, как настроить автоматическое определение). На хостинге автоматическое определение сработало само.
В pear не нашёл пакета для работа с Atom, потому просто скопировал XML_Atom.php в PEAR/XML.
Спасибо большое за заметку.Информация оказалась очень кстати и все прекрасно установилось.