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

Erlang 使用自定义应用程序启动inets/httpd,erlang,Erlang,我有一个模块,我正试图把它变成一个合适的OTP应用程序。目前,该模块具有start/0,它启动一个genserver,该genserver提供从配置文件读取的配置数据。然后调用inets:start(httpd,config:lookup(httpd_conf))。我推测我需要将这些文件的开头移到.app文件(应用程序列表)中,但我不确定如何将配置数据移到inets:start函数(或传入httpd)中 谢谢, --蒂姆这是我发现的 首先,我需要创建inets配置文件: inets.config

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

谢谢,
--蒂姆

这是我发现的

首先,我需要创建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

这似乎起作用了,不确定这是不是“正确”的方法…

以下是我的答案

首先,我需要创建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

这似乎是可行的,不确定它是否是“正确的”方式…

我想我的问题可以通过参考此[1]文档,然后提出以下问题来简化:什么是“erlang node应用程序配置文件”,它的名称是什么,应该引用在哪里,它去哪里了?你的评论中没有显示指向文档的链接。请编辑。很抱歉,这里是:我取得了一些进展。我想如果我创建了一个文件inets.config,那么当我启动时,通过-config inets.config引用它,它就会使用它。现在,我遇到了PropList文件的问题(弄清楚到底应该放在里面什么),它应该从那个文件中引用。谢谢……我想我的问题可以通过参考[1]文档,然后提出以下问题来简化:什么是“erlang node应用程序配置文件”,它的名称是什么,应该引用到哪里,它去了哪里?文档的链接不会显示在您的评论中。请编辑。很抱歉,这里是:我取得了一些进展。我想如果我创建了一个文件inets.config,那么当我启动时,通过-config inets.config引用它,它就会使用它。现在,我遇到了PropList文件的问题(弄清楚到底应该放在里面什么),它应该从那个文件中引用。谢谢…我终于找到了一个服务器配置语法的示例!但即使我删除了顶部的文件名,语法对我也不起作用。我终于找到了一个服务器配置语法的示例!但即使我删除了顶部的文件名,语法对我也不起作用。以下是对我有效的方法: