凤凰框架部署问题

时间:2016-01-30 07:58:35

标签: elixir phoenix-framework conform exrm

我正在尝试使用exrm部署Phoenix应用程序并遵守。测试本地Ubuntu上的版本。但是当我在服务器上运行相同时,就会出现故障。我无法理解确切的原因。

{error_logger,{{2016,1,30},{7,45,44}},“协议:~tp:注册/监听错误:~tp~n”,[“inet_tcp”,etimedout]} {error_logger,{{2016,1,30},{7,45,44}},crash_report,[[{initial_call,{net_kernel,INIT,[ 'Argument__1']}},{PID,< 0.22.0> },{registered_name,[]},{ERROR_INFO,{退出,{错误,badarg},[{gen_server,init_it,6,[{文件, “gen_server.erl”},{线,344}]},{proc_lib ,init_p_do_apply,3,[{文件, “proc_lib.erl”},{线,240}]}]}},{祖先,[net_sup,kernel_sup,< 0.10.0>]},{消息,[]} {链接,[#端口< 0.380>,< 0.19.0>]},{字典,[{longnames,TRUE}]},{trap_exit,TRUE},{状态,运行},{heap_size,987} {STACK_SIZE,27},{减少,842}],[]]} {error_logger,{{2016,1,30},{7,45,44}},supervisor_report,[{主管,{本地,net_sup}},{errorContext,START_ERROR},{原因,{ '退出',nodistribution} },{罪犯,[{PID,未定义},{ID,net_kernel},{mfargs,{net_kernel,START_LINK,[[ '应用@ 127.0.0.1',longnames]]}},{启动Restart_type,永久},{关机,2000},{CHILD_TYPE,工人}]}]} {error_logger,{{2016,1,30},{7,45,44}},supervisor_report,[{主管,{本地,kernel_sup}},{errorContext,START_ERROR},{原因,{关机,{failed_to_start_child,net_kernel ,{ '退出',nodistribution}}}},{罪犯,[{PID,未定义},{ID,net_sup},{mfargs,{erl_distribution,START_LINK,[]}},{启动Restart_type,永久},{关机,无穷大},{CHILD_TYPE,监}]}]} {error_logger,{{2016,1,30},{7,45,44}},crash_report,[[{initial_call,{application_master,INIT,[ 'Argument__1', 'Argument__2', 'Argument__3', 'Argument__4'] }},{PID,< 0.9.0>},{registered_name,[]},{ERROR_INFO,{退出,{{关机,{failed_to_start_child,net_sup,{关机,{failed_to_start_child,net_kernel,{ '退出',nodistribution }}}}},{内核,启动,[正常,[]]}},[{application_master,INIT,4,[{文件, “application_master.erl”},{线,134}]},{proc_lib, init_p_do_apply,3,[{文件, “proc_lib.erl”},{线,240}]}]}},{祖先,并[d 0.8.0>]},{消息,[{ '退出',< 0.10.0>,正常}]},{链接,并[d 0.8.0>,< 0.7.0>]},{字典,[]},{trap_exit,TRUE},{状态,运行},{ heap_size,376},{STACK_SIZE,27},{减少,117}],[]]} {error_logger,{{2016,1,30},{7,45,44}},std_info,[{应用,内核},{退出,{{关机,{failed_to_start_child,net_sup,{关机,{failed_to_start_child,net_kernel, { '退出',nodistribution}}}}},{内核,启动,[正常,[]]}}},{型,永久}]} {“内核pid终止”,application_controller,“{application_start_failure,内核,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}}},{kernel,start,[正常,[]]}}}“}

崩溃转储被写入:erl_crash.dump ...内核pid终止(application_controller)({application_start_failure,kernel,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT', nodistribution}}}}},{ķ

1 个答案:

答案 0 :(得分:1)

错误原因通常在第一行错误和崩溃转储:

{error_logger,{{2016,1,30},{7,45,44}},"Protocol: ~tp: register/listen error: ~tp~n",["inet_tcp",etimedout]}...

({application_start_failure,kernel,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}}...

在启动期间,在使用超时etimedout打开侦听套接字时出错。这可能是由几件事引起的:

  • 您的应用程序已在运行,您无法再打开两次相同的端口,
  • 有防火墙限制 - 特别是对于端口4369(Erlang端口映射器守护程序)检查iptables
  • 您的应用无权打开该端口

iex使用dev环境启动您的应用,而exrm使用prod。 比较您的devprod设置。可能有不同的端口定义。尝试使用iex运行您的应用,但使用prod环境。

MIX_ENV=prod iex -S mix phoenix.server

请记住,生成的版本具有在创建期间评估的所有配置值并进行硬编码。