Running Yaws Apps
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 t开发者_如何学运维he 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
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 toyapp
- set your server configuration
arg_rewrite_mod
toyapp
- within your server configuration
opaque
block, setbootstrap_yapps
toyapp
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.
精彩评论