运行 Yaws 应用程序

Mar*_*her 5 erlang yaws

我对 erlang 和 yaws 很陌生。在尝试了该语言和简单的 yaws 功能(如 ehtml 和普通 appmods)后,我尝试编写一个 yapp。我跟着http://yaws.hyber.org/yapp_intro.yawshttps://github.com/davide/yawn/wiki让它或多或少地运行。它只是由一个 .app 文件和一个只有 out/1 的简单 test.erl/beam 组成。Yaws 可以正常启动并加载 yapp。当我在交互模式下运行 yaws 并调用 test:out(somehting) 它工作正常。当我浏览 url(使用浏览器或 curl)时,我得到一个

=ERROR REPORT==== Date ===
Yaws process died:...
Run Code Online (Sandbox Code Playgroud)

并没有返回给客户。我一直在尝试一些事情,但我还没有发现问题。

我相信问题出在我的 .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>
Run Code Online (Sandbox Code Playgroud)

谢谢

Ste*_*ski 5

如果您仔细按照Yaws 网站上提供yapp 说明进行操作,一切都会正常进行。请务必记住:

  • 将全局runmod配置变量设置为yapp
  • 将您的服务器配置设置arg_rewrite_modyapp
  • 在您的服务器配置opaque块中,设置bootstrap_yappsyapp

为了避免需要为您的 yapp 创建 mnesia 数据库,您可以尝试将您的 yapp 设置为bootstrap_yapp服务器配置中的附加项,或者仅使用该yapp_ets_server模块。您可以yapp_ets_server其源文件顶部找到使用说明。

  • @Viehzeug 你可以告诉我们问题是什么,你是如何在另一个答案中解决的,所以它可以作为未来的参考。 (2认同)