运行雅司病应用程序
我对 erlang 和雅司病很陌生。在尝试了该语言和简单的雅司病功能(如 ehtml 和普通的 appmods)之后,我尝试编写一个 yapp。我关注了 http://yaws.hyber.org/yapp_intro.yaws 和 https://github.com/davide/yawn/wiki 以使其或多或少运行。它仅由一个 .app 文件和一个简单的 test.erl/beam 组成,其中只有一个 out/1。 Yaws 启动没有问题并加载 yapp。当我在交互模式下运行 yaws 并调用 test:out(somehting) 时,它工作正常。当我浏览该网址(使用浏览器或curl)时,我得到一个
=ERROR REPORT==== Date ===
Yaws process died:...
,但没有任何内容返回给客户端。我一直在尝试一些事情,但还没有发现问题。
我相信问题出在我的 .app 文件中...... 我希望你能帮助我。我在下面添加了 .app 和 localhost-ssl.conf 的内容。
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>
谢谢
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
如果您仔细遵循 Yaws 网站上提供的 yapp 说明,一切都会正常工作。请务必记住:
runmod
配置变量设置为yapp
arg_rewrite_mod
设置为yapp
opaque
块,将bootstrap_yapps
设置为yapp
为了避免需要为您的 yapp 创建 mnesia 数据库,您可以尝试设置您的 yapp作为服务器配置中的附加
bootstrap_yapp
,或者仅使用yapp_ets_server
模块。您可以在 源文件顶部。If you carefully follow the yapp instructions provided at the Yaws website everything should work fine. Be sure to remember to:
runmod
configuration variable toyapp
arg_rewrite_mod
toyapp
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 theyapp_ets_server
module instead. You can find instructions for usingyapp_ets_server
at the top of its source file.