2

我试图在我的 Mac OS X 10.8 上运行 Yaws 1.94 并且它崩溃了。我正在运行 Erlang R15B01

我正在使用 macports 使用以下命令安装它:

sudo port selfupdate

sudo port install erlang +ssl yaws

export ERL_LIBS=/opt/local/lib/yaws/

sudo mkdir /etc/yaws/

sudo cp /opt/local/etc/yaws/yaws.conf.template /etc/yaws/yaws.conf

当我运行 yaws 时,它崩溃了

$ sudo yaws -i --conf /etc/yaws/yaws.conf 

Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernelpoll:true]

Eshell V5.9.1  (abort with ^G)
1> 
=INFO REPORT==== 25-Jul-2012::16:36:20 ===
Yaws: Using config file /etc/yaws/yaws.conf

=INFO REPORT==== 25-Jul-2012::16:36:20 ===
yaws debug:Add path "/opt/local/var/yaws/ebin"

=INFO REPORT==== 25-Jul-2012::16:36:20 ===
yaws debug:Add path "/opt/local/lib/yaws/ebin"

=INFO REPORT==== 25-Jul-2012::16:36:20 ===
yaws debug:Add path "/opt/local/lib/yaws/examples/ebin"

=INFO REPORT==== 25-Jul-2012::16:36:20 ===
yaws debug:Running with id="default" (localinstall=false) 
Running with debug checks turned on (slower server) 
 to directory "/opt/local/var/log/yaws"

=INFO REPORT==== 25-Jul-2012::16:36:20 ===
    application: yaws
    exited: {shutdown,{yaws_app,start,[normal,[]]}}
    type: permanent
{"Kernel pid terminated",application_controller,"{application_start_failure,yaws,{shutdown,{yaws_app,start,[normal,[]]}}}"}

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,yaws,{shutdown,{yaws_app,start,[normal,[]]}}})

因此

当我检查周围是否有 yaws 进程(ps -efw | grep yaws)并且没有

我在这里想念什么?我希望能够在 Mac OS X 上使用 Yaws。谢谢

这是 sasl 的输出

$ sudo yaws -i --conf /etc/yaws/yaws.conf --erlarg '-boot start_sasl'
Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:true]


=PROGRESS REPORT==== 26-Jul-2012::15:41:44 ===
      supervisor: {local,sasl_safe_sup}
         started: [{pid,<0.34.0>},
                   {name,alarm_handler},
                   {mfargs,{alarm_handler,start_link,[]}},
                   {restart_type,permanent},
                   {shutdown,2000},
                   {child_type,worker}]

=PROGRESS REPORT==== 26-Jul-2012::15:41:44 ===
      supervisor: {local,sasl_safe_sup}
         started: [{pid,<0.35.0>},
                   {name,overload},
                   {mfargs,{overload,start_link,[]}},
                   {restart_type,permanent},
                   {shutdown,2000},
                   {child_type,worker}]

=PROGRESS REPORT==== 26-Jul-2012::15:41:44 ===
      supervisor: {local,sasl_sup}
         started: [{pid,<0.33.0>},
                   {name,sasl_safe_sup},
                   {mfargs,
                       {supervisor,start_link,
                           [{local,sasl_safe_sup},sasl,safe]}},
                   {restart_type,permanent},
                   {shutdown,infinity},
                   {child_type,supervisor}]

=PROGRESS REPORT==== 26-Jul-2012::15:41:44 ===
      supervisor: {local,sasl_sup}
         started: [{pid,<0.36.0>},
                   {name,release_handler},
                   {mfargs,{release_handler,start_link,[]}},
                   {restart_type,permanent},
                   {shutdown,2000},
                   {child_type,worker}]

=PROGRESS REPORT==== 26-Jul-2012::15:41:44 ===
     application: sasl
      started_at: nonode@nohost

=PROGRESS REPORT==== 26-Jul-2012::15:41:44 ===
      supervisor: {local,yaws_sup}
         started: [{pid,<0.43.0>},
                   {name,yaws_log},
                   {mfargs,{yaws_log,start_link,[]}},
                   {restart_type,permanent},
                   {shutdown,5000},
                   {child_type,worker}]

=PROGRESS REPORT==== 26-Jul-2012::15:41:44 ===
      supervisor: {local,yaws_sup}
         started: [{pid,<0.44.0>},
                   {name,yaws_trace},
                   {mfargs,{yaws_trace,start_link,[]}},
                   {restart_type,permanent},
                   {shutdown,5000},
                   {child_type,worker}]
Eshell V5.9.1  (abort with ^G)
1> 
=INFO REPORT==== 26-Jul-2012::15:41:44 ===
Yaws: Using config file /etc/yaws/yaws.conf

=INFO REPORT==== 26-Jul-2012::15:41:44 ===
yaws debug:Add path "/opt/local/var/yaws/ebin"

=INFO REPORT==== 26-Jul-2012::15:41:44 ===
yaws debug:Add path "/opt/local/lib/yaws/ebin"

=INFO REPORT==== 26-Jul-2012::15:41:44 ===
yaws debug:Add path "/opt/local/lib/yaws/examples/ebin"

=INFO REPORT==== 26-Jul-2012::15:41:44 ===
yaws debug:Running with id="default" (localinstall=false) 
Running with debug checks turned on (slower server) 
Logging to directory "/opt/local/var/log/yaws"

=CRASH REPORT==== 26-Jul-2012::15:41:44 ===
crasher:
initial call: yaws_server:init/1
pid: <0.45.0>
registered_name: []
exception exit: {{badmatch,{error,enotdir}},
                 [{yaws_server,setup_dirs,1,
                               [{file,"yaws_server.erl"},{line,525}]},
                  {yaws_server,init2,5,
                               [{file,"yaws_server.erl"},{line,200}]},
                  {gen_server,init_it,6,
                              [{file,"gen_server.erl"},{line,304}]},
                  {proc_lib,init_p_do_apply,3,
                            [{file,"proc_lib.erl"},{line,227}]}]}
  in function  gen_server:init_it/6 (gen_server.erl, line 328)
ancestors: [yaws_sup,<0.41.0>]
messages: []
links: [<0.42.0>]
dictionary: [{start_time,{{2012,7,26},{15,41,44}}},
              {gc,{gconf,"/opt/local/lib/yaws",false,102,
                         "/opt/local/var/log/yaws",
                         ["/opt/local/var/yaws/ebin",
                          "/opt/local/lib/yaws/ebin",
                          "/opt/local/lib/yaws/examples/ebin"],
                         [],30000,nolimit,400,1000000,8000,nolimit,[],
                         10240,[],1000000,0,
                         ["/opt/local/lib/yaws/include",
                          "/opt/local/lib/yaws/examples/include"],
                         "/usr/bin/php-cgi","Yaws 1.94","default",false,
                         [],yaws_session_server,8}}]
trap_exit: true
status: running
heap_size: 2584
stack_size: 24
reductions: 40977
neighbours:

=SUPERVISOR REPORT==== 26-Jul-2012::15:41:44 ===
 Supervisor: {local,yaws_sup}
 Context:    start_error
 Reason:     {{badmatch,{error,enotdir}},
              [{yaws_server,setup_dirs,1,
                            [{file,"yaws_server.erl"},{line,525}]},
               {yaws_server,init2,5,[{file,"yaws_server.erl"},{line,200}]},
               {gen_server,init_it,6,[{file,"gen_server.erl"},{line,304}]},
               {proc_lib,init_p_do_apply,3,
                         [{file,"proc_lib.erl"},{line,227}]}]}
 Offender:   [{pid,undefined},
              {name,yaws_server},
              {mfargs,
                  {yaws_server,start_link,
                      [{env,true,false,false,
                           {file,"/etc/yaws/yaws.conf"},
                           false,false,"default"}]}},
              {restart_type,permanent},
              {shutdown,120000},
              {child_type,worker}]


=INFO REPORT==== 26-Jul-2012::15:41:44 ===
application: yaws
exited: {shutdown,{yaws_app,start,[normal,[]]}}
type: permanent
{"Kernel pid terminated",application_controller,"{application_start_failure,yaws,{shutdown,{yaws_app,start,[normal,[]]}}}"}

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,yaws,{shutdown,{yaws_app,start,[normal,[]]}}})
4

2 回答 2

1

查看崩溃消息中的错误exception exit: {badmatch,{error,enotdir}}。这看起来像 yaws 期望在某个地方找到一个目录并找到其他东西。我建议您查看525文件中的行yaws_server.erl。你甚至可以放一个io:format/2,然后看看 yaws 在那个时候得到了什么。它可能是格式错误的目录名称,可能包含空格。您还可以尝试检查其用于启动的 conf 文件,并查看PATHS服务器想要用作docroot. 此外,检查 yaws 安装目录的权限,以及Directoriesyaws 想要查看的所有内容。

于 2012-07-27T05:01:50.663 回答
1

我不确定 Erlang 和 Yaws 构建的起源或可行性,可以通过 macports 检索,所以我不知道它们是否真的有效。就我个人而言,我不使用 macports,因为我从那里获得的其他软件存在问题。

要尝试获取有关 Yaws 安装问题的更多信息,请像这样启动 Yaws:

sudo yaws -i --conf /etc/yaws/yaws.conf --erlarg '-boot start_sasl'

希望sasl能给我们更多关于潜在问题的信息。

于 2012-07-26T02:58:58.993 回答