Tuesday, 6 January 2009

erlangweb: начало

Хочется мне, не скрою, писать web приложения на erlang. И хочется делать это достаточно давно.

Из всех сущетсвующих библиотек для написания web-приложения на erlang мне больше всего приглянулся Erlang Web. Но у него оказалось проблема — нет работающих примеров. Те что есть, содержат опечатки (да и сама библиотека не без них ☹ ) и многие вещи просто недосказаны.

В попытке это исправить я написал приложение, но для его работы требуется патч.

Инструкция по использованию

Предполагаем что вы скачали erlangweb и наложили на него патчи распоковав в ~/erlang/erlangweb. Мое приложение в ~/erlang/shop.

Теперь, внутри ~/erlang/shop нам нужно инициализировать erlangweb проект

~/erlang/erlangweb-1.2/bin/start.erl

Дальше, нам надо добавить ссылки на библиотеки erlangweb

ln -s ~/erlang/erlangweb-1.2/lib/eptic-1.2 lib
ln -s ~/erlang/erlangweb-1.2/lib/wpart-1.2 lib
ln -s ~/erlang/erlangweb-1.2/lib/wparts-1.2 lib
ln -s ~/erlang/erlangweb-1.2/lib/yaws-1.73 lib

Дальше нам надо добавить наше приложение в erlangweb

./bin/add.erl

Тут нас спросят про имя, надо ввести shop и в качестве версии 0.1.

Дальше мы добаляем dispatcher, для этого в файле config/dispatch.conf пишем:

{dynamic, delegate, "^/shop", "config/dispatchers/shop.conf"}.

Далее надо подключить локализацию, записав в config/project.conf:

{default_language, en}.
{language_files, [{en, "config/languages/en.conf"},
                  {ru, "config/languages/ru.conf"}]}.

И собрать наш проект:

erl -make

Следующим шагом мы можем запустить это все:

./bin/start_interactive yaws

Но нам нужна база, для этого надо ее проинициализовать, запустив из erlang shell

shop_starter:db_start().

После каждого рестарта приложения нам надо будет запускать:

shop_starter:start().

Но можно этого избежать, добавив в файл bin/start_interactive текст -s shop_starter в конце каждой строчки начинающий с erl.

Все, теперь можно заходить на http://localhost:8080/shop/ и изучать как это все работает, читая tutorial.

Write on: 17:32 | 4 comments | | tags: , , , | permalink |
Add post to:   Delicious Reddit Slashdot Digg Technorati Google


Add comment

Comments

jtootf 13.01.2009 11:55

занятно. у нас товарищ пытался взвести сайт KievLtU на Yaws; до сих пор, к сожалению, так и не взвёл

вернусь из коммандировки — плюну на всё, буду писать под HAppS

reply
Kirill A. Korinskiy 13.01.2009 18:29

Я иду в направление завода тут блога и всего вокруг на erlang :)

Посмотрим, когда я закончу ;)

reply
Cyril Slobin 16.01.2009 17:54

Offtopic: отвечаю тут, потому что не уверен, что ЖЖ пришлёт куда-нибудь ответ на комментарий, подписанный опенидом. Я по поводу задачки про пароли Брюса Шнайера: раз уж взялись думать, пожалуйста, не читайте тамошних комментариев! Там уже есть решение, или, по крайней мере, то, что большинство согласилось считать решением. И Вы удовольствия не получите, и у меня не будет шанса увидеть другой вариант, если вдруг Вы его придумаете. ;-) Удачи!

reply

Comment form for «erlangweb: начало»

Required. 30 chars of fewer.

Required.

Kirill A. Korinskiy 16.01.2009 20:26

Спасибо. Ответы приходят мне на email с ЖЖ.

reply