Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running Yaws Apps

Tags:

erlang

yaws

I am quite new to erlang and yaws. I after playing around with the language and easy yaws features like ehtml and normal appmods I tried to write a yapp. I followed http://yaws.hyber.org/yapp_intro.yaws and https://github.com/davide/yawn/wiki to get it more or less running. It simply consists of an .app file and a simple test.erl/beam that just has a out/1. Yaws starts without a problem and loads the yapp. When I run yaws in the interactive mode and call test:out(somehting) it works fine. When I surf the url (with browser or curl) I get an

=ERROR REPORT==== Date ===
Yaws process died:...

and nothing returned to the client. I have been trying around a couple of things, but I haven't found the problem yet.

I believe the problem is in my .app file... I hope you can help my. I added the content of the .app and my localhost-ssl.conf below.

marc@server:~$ cat /usr/lib/yaws/lib/api/ebin/api.app 
{application, api,
 [{description,"cloudia api as yapp"},
  {vsn,"0.1"},
  {modules,[]},
  {registered, []},
  {env, [
         {yapp_appmods,[{"/",test}]},
        ]}]}.


marc@server:~$ sudo cat /etc/yaws/conf.d/localhost-ssl.conf
<server localhost>
    port = 443
    listen = 0.0.0.0
    docroot = /usr/share/yaws
    arg_rewrite_mod = api
    #dir_listings = true
    <ssl>  
        keyfile = /etc/yaws/yaws-key.pem
        certfile = /etc/yaws/yaws-cert.pem
    </ssl>   
    <opaque>
    yapp_server_id = edo
    </opaque>
</server>

Thanks

like image 551
Marc Fischer Avatar asked Mar 15 '11 08:03

Marc Fischer


1 Answers

If you carefully follow the yapp instructions provided at the Yaws website everything should work fine. Be sure to remember to:

  • set the global runmod configuration variable to yapp
  • set your server configuration arg_rewrite_mod to yapp
  • within your server configuration opaque block, set bootstrap_yapps to yapp

To avoid the need to create an mnesia database for your yapp you can either try setting your yapp as an additional bootstrap_yapp in your server configuration, or just use the yapp_ets_server module instead. You can find instructions for using yapp_ets_server at the top of its source file.

like image 184
Steve Vinoski Avatar answered Oct 12 '22 11:10

Steve Vinoski