Установка php-handlersocket 0.0.7 на ubuntu (новые грабли)

Со времени прошлого поста прошло много времени, расширение php-handlersocket успело обновитсья с 0.5 до 0.7, автор исправил некоторые баги. Спасибо вам, за то что находили их и постили в Issues. Сегодня обновили Ubuntu на компе разработчика с 10.04 до 10.10 и старая метода установки HandlerSocket работать перестала. Но нам всё-таки удалось его установить! Баг актуален только в случае обновления Ubuntu c 10.04 на 10.10 На чистой ОС таких проблем нет.

Проблема

При коннфигурировании (./configure) расширения php-handlersocket вылетают ошибки вида:

а при компиляции(make) такие:

Суть проблемы

Для компиляции расширения необходим скомпилированный плагин handlersocket для mysql. А для компиляции плагина необходимы исходники mysql.

Решение

0. Подготавливаем систему

1. Смотрим какая версия mysql стоит в системе.

У нас стоит Percona Server.

2. Идём на их сайт и качаем исходники:
http://www.percona.com/redir/downloads/Percona-Server-5.1/Percona-Server-5.1.52-12.3/source/Percona-Server-5.1.52-12.3.tar.gz

3. Распаковываем папку Percona-Server из архива в папку /usr/local/src/percona

4. Скачиваем плагин handlersocket отсюда:
https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/archives/master
Распаковываем его в папку /home/user/1/hs

5. Конфигурируем плагин вместе с исходниками mysql и компилим

Если вылезает ошибка:

значит вы не поставили sudo apt-get install libmysqlclient-dev
6. Скачиваем расширение php-handlersocket(http://code.google.com/p/php-handlersocket/downloads/list),
если ещё не скачали, и распаковываем их в папку (/usr/local/HandlerSocket-Plugin/).

7. Конфигурируем php-расширение вместе с плагином handlersocket и компилим:

Должно вывести:

и ставим:

8. Создаем файл /etc/php5/conf.d/handlersocket.ini в котором пишем

9. Перезагружаем php
sudo service apache2 restart (для php, установленного, как модуль Apache)
sudo service php5-fpm restart (для php-fpm)

10. Смотрим phpinfo(); и там должен появиться раздел про HandlerSocket

Ура! Теперь мы можем работать с HS!

9 Comments

  1. Помогите пожалуйста!

    Сдела все как говориться тут. Все скомпилил. Согдал таблицы как в примере и запустил php скрипт.
    Вот получил такой ответ
    Connected to HandlerSocket
    Can not open index
    -1:connect: 111

    Народ подскажите что нетак?!
    Это я не так скомпилил или это вообще в базе проблема или в чем?!

    1. Сергей, какая у вас структура таблицы и данные и какой запрос к HandlerSocket?

  2. И еще.
    У меня после установки percona server кол-во используемой памяти резко возрасло в разы – так и должно быть?!

    1. А это уже надо конфиг перконы смотреть.

  3. $hs = new HandlerSocket(‘127.0.0.1’, 9998);
    if($hs) {
    print ‘Connected to HandlerSocket’;
    } else {
    print ‘Can not connect’;
    die();
    }
    //index
    $index = $hs->openIndex(
    1,
    ‘mysql’,
    ‘user’,
    HandlerSocket::PRIMARY,
    ‘Host,User,Password’
    );

Leave a Reply to Sergey Cancel reply