• KPHP - обмен опытом, кто работал?

    Настройка Engine

    При условии что kphp-kdb здесь: /usr/local/src/kphp-kdb/

    cd /usr/local/src/kphp-kdb/
    make all

    mkdir /usr/share/engine/
    mkdir /usr/share/engine/bin/
    mkdir /var/log/engine/
    mkdir /etc/engine

    cp /usr/local/src/kphp-kdb/objs/bin/* /usr/share/engine/bin/
    cp /usr/local/src/kphp-kdb/scripts/debian-init.d-engine /etc/init.d/engine
    cp /usr/local/src/kphp-kdb/scripts/_etc_logrotate.d_engine /etc/logrotate.d/engine
    cp /usr/local/src/kphp-kdb/scripts/start-engine /usr/share/engine/bin/

    logrotate -d /etc/logrotate.d/engine
    logrotate -v -f /etc/logrotate.d/engine

    Теперь можно запускать KDB движки.

    Для примера запуск lists-engine:

    touch /etc/engine/engine.1.conf
    Вставляем содержимое:
    execute lists-engine
    arg1 groups23
    -p 11200
    -vvv

    touch /var/lib/engine/groups23.bin
    /usr/local/src/kphp-kdb/scripts/create_binlog.sh 0x6ef20101 128 98 > /var/lib/engine/groups23.bin
    hexdump -C /var/lib/engine/groups23.bin
    Выдаст такое:

    00000000 4b 64 4c 04 01 01 f2 6e 00 00 00 00 80 00 00 00 |KdL....n........|
    00000010 62 00 00 00 63 00 00 00 |b...c...|
    00000018

    chown -R kitten:kitten /var/lib/engine/

    echo 1 > /proc/sys/vm/overcommit_memory

    service engine start 1
    service engine status

    Если fail смотрим логи

    cat /var/log/engine/engine-1.log
    Ответ написан
    Комментировать
  • Как запустить KPHP?

    Ставил на Ubuntu 12.04.4 LTS

    sudo apt-get install git-core openssl zlib1g-dev libcg libprcre3-dev

    Ставим libre2:
    wget re2.googlecode.com/files/re2-20140304.tgz
    tar -zxvf re2-20140304.tgz
    cd re2/
    make
    make test (Не обращаем внимание на ошибку)
    make install
    make testinstall

    cd /usr/local/src/
    git clone https://github.com/vk-com/kphp-kdb
    cd /usr/local/src/kphp-kdb/

    make kphp

    Проверяем сборку: /usr/local/src/kphp-kdb/objs/bin/kphp2cpp
    Если все ок:

    export KPHP_PATH=/usr/local/src/kphp-kdb

    Пример компиляции php в kphp:

    Для примера возмем файл bench.php
    Лежит он здесь: https://gist.github.com/anonymous/9391146
    Скачиваем, кладем.
    mkdir /var/www/testkphp
    cd /var/www/testkphp/
    Компилируем bench.php в kphp
    python /usr/local/src/kphp-kdb/KPHP/tests/kphp.py bench.php -o bench
    После компиляции запускаем
    ./bench
    Увидим таблицу тестов.

    Сравниваем с php:
    php bench.php

    Радуемся!
    Ответ написан
    2 комментария