使用自定义应用程序启动inets / httpd

时间:2010-03-29 14:11:43

标签: erlang

我有一个模块,我正试图变成一个合适的OTP应用程序。目前,模块具有start / 0,其启动genserver,其提供从配置文件读取的配置数据。然后调用inets:start(httpd,config:lookup(httpd_conf))。我知道我需要将这些内容的起点移到.app文件(应用程序列表)中,但我不确定如何将我的配置数据放入inets:start函数(或传入httpd)?

谢谢, --tim

1 个答案:

答案 0 :(得分:1)

这是我发现的......

首先,我需要创建inets配置文件:

inets.config:
      [{inets, [{services, [{httpd, [{proplist_file,
             "8080.conf"}]},
     ].

然后,创建httpd conf文件:

8080.conf
[
{modules, [
 mod_alias, 
 mod_auth, 
 mod_esi, 
 mod_actions, 
 mod_cgi, 
 mod_dir, 
 mod_get, 
 mod_head, 
 mod_log, 
 mod_disk_log
]},
{port,8080},
{server_name,"hello_world"},
{server_root,"log"},
{document_root,"www"},
{erl_script_alias, {"/erl", [hello_world]}},
{error_log, "error.log"},
{security_log, "security.log"},
{transfer_log, "transfer.log"},
{mime_types,[
{"html","text/html"},
 {"css","text/css"},
{"js","application/x-javascript"}
]}
]

现在,在启动我的应用程序时,我只是引用inets.conf文件:

$ erl -boot start_sasl -pa ebin -config inets.config

这似乎不确定它是否是“正确”的方式......