На блоге овцы отсутствует привычная регистрация. Авторизация пользователей проходит по технологии OpenID.

Если Вы пользуетесь такими популярными веб-сервисами, как: Yandex, Google, LiveJournal, Yahoo и у Вас есть учетная запись хотя бы на одном из перечисленных сайтов, то это значит, что у Вас уже есть OpenID, и Вы можете прямо сейчас войти на блог. Если Вы не зарегистрированы ни на одном из этих сайтов, то OpenID можно легко получить на одном из множества специализированных веб-сервисов.

Если Вы войдете на блог с идентификатором OpenID, то автоматически произойдет Ваша регистрация на блоге и Вы сможете отправлять комментарии к статьям без предварительной модерации, а также принимать участие в дальнейших проектах. Более подробная информация содержится на страничке авторизации.

 Установка Berkeley DB XML для PHP на Linux

21 Jul 2007 17:36
Несколько дней назад я устанавливал какие-то библиотеки на сервере, но они не работали. Я вернулся с танцев поздно вечером и решил, что не смогу спокойно заснуть, если не заставлю их работать и перекомпилировал PHP с предварительной командой make clean. Библиотеки включились, но отвалилась база, на которой держится "овца". Соответственно судьба блога оказалась под угрозой.

Естественно ни о каком сне больше не шло речи. Возможно это случилось к лучшему, потому что я заодно решил установить более новую версию Berkeley DB XML (читается BArK-lee). Всю ночь я изучал документацию и форумы, а поскольку я не системный администратор, то давалось это крайне тяжело. К великому счастью ко второй половине следующего дня мне удалось все настроить!

1. Делаем билд dbxml

скачиваем последнюю версию Berkeley DB XML 2.3.10
wget http://download-uk.oracle.com/berkeley-db/dbxml-2.3.10.tar.gz

распаковываем
tar -xzvf dbxml-2.3.10.tar.gz

переходим в папочку (в моем случае это /root/dbxml-2.3.10)
cd dbxml-2.3.10

делаем полный билд dbxml (собирается эта сволочь около получаса)
./buildall.sh


2. Устанавливаем PHP API

cd dbxml/src/php

запускаем утилиту phpize (должна входить в девел пакет PHP, для меня эта сука была непреодолимым препятствием в начале года, когда я только разрабатывал "овцу" и из-за неё не мог поставить самостоятельно базу)
phpize

./configure --with-dbxml=/root/dbxml-2.3.10/install --with-berkeleydb=/root/dbxml-2.3.10/install --with-xerces=/root/dbxml-2.3.10/install --with-pathan=/root/dbxml-2.3.10/install --with-xquery=/root/dbxml-2.3.10/install

make

У меня выдалась следующая ошибка:
Error: In file included from /root/dbxml-2.3.10/dbxml/src/php/php_dbxml.cpp:10:
/root/dbxml-2.3.10/dbxml/src/php/php_dbxml_int.hpp:18:29: ext/db4/php_db4.h: No such file or directory

На форуме Oracle я нашел простое решение - мы просто создаем символическую ссылку (ярлык) на требуемую директорию:
mkdir ext
cd ext
ln -s /root/dbxml-2.3.10/db-4.5.20/php_db4 db4
cd ../

возвращаемся и повторяем все с начала
./configure [...]
make
make install

Результат:
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/

3. Ставим расширение php_db4

cd /root/dbxml-2.3.10/db-4.5.20/php_db4

phpize

./configure --with-db4=/root/dbxml-2.3.10/install

собираем
make

Результат:
#Build complete.
ls modules

#db4.la db4.so
make install

Результат:
#Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/
#Installing php_db4 headers: /usr/local/include/php/ext/db4/

я полагаю, что db4.so, dbxml.so можно скопировать из
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/ в /usr/local/lib/php/extensions или другую папку, где находятся все расширения PHP.

4. Подцепляем к PHP

в php.ini добавляем строки в соответствующем разделе:
extension=db4.so
extension=dbxml.so

убеждаемся, что добавляем их в правильный файл. путь к нему, а также extension_dir указан в phpinfo. убеждаемся, что модули находятся в extension_dir

перегружаем апач
service httpd restart

видим заветные строки в phpinfo():
db4 support enabled
dbxml support enabled
dbxml version Oracle: Berkeley DB XML 2.3.10: (January 30, 2007)

Ура, блять, работает

 

Комментарии к статье

 CAT
Овца пребывала в отключке почти сутки и была большая вероятность, что это затянется длительный срок. Это было особенно некстати так как в это время проходили тестирования на объектность. К счастью оперативные действия позволили достаточно быстро поднять овцу и трагедия миновала.

23 Июля 2007, 9:24

 

Добавить новый комментарий


Ваш адрес эл.почты не публикуется


Имя пользователя, кому Вы отвечаете

 


Реклама, оскорбления и ругань в комментариях не публикуются.

Beatles.ru    swingdance.ru    last.fm

© 2007—2011 Sheepman's blog (Всё о ковбоях) v.3
sheepman@yandex.ru (Илья)