Erlang 使用自定义应用程序启动inets/httpd
我有一个模块,我正试图把它变成一个合适的OTP应用程序。目前,该模块具有start/0,它启动一个genserver,该genserver提供从配置文件读取的配置数据。然后调用inets:start(httpd,config:lookup(httpd_conf))。我推测我需要将这些文件的开头移到.app文件(应用程序列表)中,但我不确定如何将配置数据移到inets:start函数(或传入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
--蒂姆这是我发现的 首先,我需要创建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文件的问题(弄清楚到底应该放在里面什么),它应该从那个文件中引用。谢谢…我终于找到了一个服务器配置语法的示例!但即使我删除了顶部的文件名,语法对我也不起作用。我终于找到了一个服务器配置语法的示例!但即使我删除了顶部的文件名,语法对我也不起作用。以下是对我有效的方法: