Pull to refresh

ServerSideJS: теперь проще просто. Встречайте v8cgi!

Reading time2 min
Views1.3K
v8cgi — обертка для JS-движка v8 от гугла. Меня попросили его поставить на сервер и он меня приятно удивил непредсказуемо малой прожорливостью и удобством эксплуатации.

Итак, задачи:
1. Собрать v8
2. Собрать v8cgi в том числе как модуль апача
3. Настроить апач.
4. Выпить чаю с карамельками по этому поводу.

v8


Необходимо: питон, subversion и scons(gcc есть везде).
Для неопытных: в debian подойдут пакеты svn, scons, python-minimal

Забираем исходный код с SVN
svn checkout v8.googlecode.com/svn/trunk v8-read-only
и, перейдя в полученную папку, запускаем конструктор.
scons library=shared
Копируем свежесобранный файл (libv8*.so) в /usr/lib/libv8.so

cgi


Надо: библиотеки apache, mysql и GD
(пакеты deb: libmysqlclient15-dev libgd2-dev apache2-threaded-dev )
Опционально: sqlite и fastcgi ( libfcgi-dev libsqlite3-dev)
Обязательно исправляем примерно на 58 строке файла Sconfigure ../v8 на ../V8, иначе конструктор будет недоволен.
Собираем:
scons module=1 sqlite=0 fcgi=0

Собрано. Имеем 2 файла: mod_v8cgi.so и v8cgi, копируем их в /home/v8, а содержимое каталога lib в /usr/lib/v8cgi.
Конфиг libv8cgi.conf.posix скопируем в /etc/v8cgi.conf

Apache


добавим 3 строчки с кофиг и модуль заработал.
LoadModule v8cgi_module /home/v8/mod_v8cgi.so
v8cgi_Config /etc/v8cgi.conf
AddHandler v8cgi-script .ssjs


По поводу запуска как cgi программы.
ScriptAlias /ssjs/ /home/lazutov/ssjs/
AddHandler v8cgi-handler .ssjs
Action v8cgi-handler /ssjs/v8cgi

В еррорлоге v8cgi ругается на неверные заголовки и ожидаемо падает 500 ошибкой. Руки, что поделаешь :)

Заключение


v8cgi заработал с непредсказуемо малым расходом памяти — 20-30 мб, против ожидаемых 70-100.
JS получил еще одно пинковое ускорение в развитии уже в совершенно другом качестве. Перспективы? Горизонты? Время покажет.
Чай
.
Ой. карамелек нет. Нет и чая.
Есть очень кислая вишня. Зальем ее кипятком и отправим в организм немного витаминов :) Кстати неплохо, рекомендую.
Tags:
Hubs:
Total votes 47: ↑38 and ↓9+29
Comments45

Articles