PHP/Erlang

PHP/Erlang aims to be a PHP extension with a simple set of functions for turning a PHP thread into an Erlang C-node. With this extension, you can shift backend tasks to Erlang, where they belong: caching, chat, database proxying, everything.

PHP/Erlang is released under the LPGL.

README
Download (v0.0.3)

NOTE: I had some trouble running this on one particular Debian installation. It complained about a missing pthread symbol. Changing the Makefile (after running configure) to include -lpthread solved the problem, but I don't know why.

NOTE: Pedram Nimreezi had some trouble running this on FreeBSD. Basically, it boils down to a missing gethostbyname_r implementation.

From: "Pedram Nimreezi"
Subject: Re: php-erlang
Date: Wed, 15 Oct 2008 00:33:11 -0400

Ok... I figured it out..
packet sniffer didn't help but was a good idea..

I couldn't get this to work for the life of me on freebsd..

awesome idea, awesome extension couldn't get it to work..

until now of course: first success was in finding that if i
$ export EI_TRACELEVEL=8

I'd get back some errors from erlang errors like
ei_connect: Tue Oct 14 12:32:05 2008: Can't find host for blah blah

then after hours and hours of debugging i found out there's no
gethostbyname_r in freebsd and the erl lib used it...

http://lists.freebsd.org/pipermail/freebsd-questions/2003-November/025600.html


so i basically turned the gethostbyname_r into gethostbyname around
line 623 of otp_src_R12B-4/lib/erl_interface/src/connect/ei_resolve.c

whew... now i can actually play with this thing....

basically heres the fix
#ifdef __GLIBC__
  struct hostent *result;

  gethostbyname_r(name, hostp, buffer, buflen, &result, h_errnop);

  return result;
#else
  struct hostent *dummy;
  return gethostbyname(name); //,hostp,buffer,buflen,&dummy,h_errnop);
#endif

© 2008 Itai Zukerman, All Rights Reserved.