2

在过去三年左右的时间里,我经常使用这个网站......这是我的第一篇文章:D

但是,无用的玩笑已经够了,继续手头的事情。


我将从方法/问题、错误开始,然后是错误的跟踪/日志。

然后我会回顾一下到目前为止我为解决这个问题所做的工作,我注意到的一些奇怪的事情,以及我认为可能导致它的原因。


方法/问题:

我最近加入了一个移动应用程序的后端开发团队,在我实现任何新功能之前,我必须让产品在我的本地机器上启动并运行......

(在 app 目录中) rails s

=> 启动 WEBrick

=> Rails 3.1.0.rc4 应用程序开始在http://0.0.0.0:3000开发

=> 使用 -d 调用以分离 => Ctrl-C 以关闭服务器

[2011-09-14 19:11:59] INFO WEBrick 1.3.1

[2011-09-14 19:11:59] INFO ruby​​ 1.8.7 (2009-06-12) [universal-darwin10.0]

[2011-09-14 19:11:59] 信息 WEBrick::HTTPServer#start: pid=35031 端口=3000

所以现在所有这些看起来都很好,但是当我尝试在浏览器上访问页面时......


错误:

(浏览器页面标题):动作控制器:异常捕获

PG错误

fe_sendauth:未提供密码


跟踪/日志

(接第一节终端的最后一行)

缓存错误:没有可用的服务器

/Library/Ruby/Gems/1.8/gems/dalli-1.0.5/lib/dalli/ring.rb:45:in `server_for_key'

/Library/Ruby/Gems/1.8/gems/dalli-1.0.5/lib/dalli/client.rb:239:in `执行'

/Library/Ruby/Gems/1.8/gems/dalli-1.0.5/lib/dalli/client.rb:60:in `get'

/Library/Ruby/Gems/1.8/gems/rack-cache-1.0.3/lib/rack/cache/metastore.rb:320:in `read'

/Library/Ruby/Gems/1.8/gems/rack-cache-1.0.3/lib/rack/cache/metastore.rb:30:in `lookup'

/Library/Ruby/Gems/1.8/gems/rack-cache-1.0.3/lib/rack/cache/context.rb:165:in `lookup'

/Library/Ruby/Gems/1.8/gems/rack-cache-1.0.3/lib/rack/cache/context.rb:65:in `call!'

/Library/Ruby/Gems/1.8/gems/rack-cache-1.0.3/lib/rack/cache/context.rb:50:in `call'

/Library/Ruby/Gems/1.8/gems/rack-1.3.2/lib/rack/deflater.rb:13:in `call'

/Library/Ruby/Gems/1.8/gems/railties-3.1.0.rc4/lib/rails/rack/content_length.rb:16:in `call'

/Library/Ruby/Gems/1.8/gems/railties-3.1.0.rc4/lib/rails/rack/log_tailer.rb:14:in `call'

/Library/Ruby/Gems/1.8/gems/rack-1.3.2/lib/rack/handler/webrick.rb:59:in `服务'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'

/Library/Ruby/Gems/1.8/gems/rack-1.3.2/lib/rack/handler/webrick.rb:13:in `run'

/Library/Ruby/Gems/1.8/gems/rack-1.3.2/lib/rack/server.rb:265:in `start'

/Library/Ruby/Gems/1.8/gems/railties-3.1.0.rc4/lib/rails/commands/server.rb:70:in `start'

/Library/Ruby/Gems/1.8/gems/railties-3.1.0.rc4/lib/rails/commands.rb:54

/Library/Ruby/Gems/1.8/gems/railties-3.1.0.rc4/lib/rails/commands.rb:49:in `tap'

/Library/Ruby/Gems/1.8/gems/railties-3.1.0.rc4/lib/rails/commands.rb:49

脚本/rails:6:in `require'

脚本/导轨:6

缓存:[GET /] 传递

Dalli::Server#connect localhost:11211

本地主机:11211 失败(计数:0)

我也可以从浏览器中给出完整的跟踪信息,但我不希望这篇文章变得太罗嗦。

所以这就是两难境地!


我做了什么:

简单的解决方案(如下所列)没有任何区别。

正确安装了 pg gem(手动包含路径后)

我修复了 pg_hba.conf 文件以允许信任(ed)连接。

我可以通过 pgadmin3 工具和终端连接到 postgres 数据库。


啊?:

在不同的端口上运行服务器没有任何区别,但如果我尝试连接到为我的 postgresql 数据库保留的端口之一,则连接很忙(如果需要,我也可以发布该错误日志)。

如果我尝试从应用程序访问不存在的页面...例如 users/explode 或 signin/signout,则错误是相同的。不过,终端日志每次都会显示“[GET /'var'] pass”。


想法:

我最好的猜测是问题出在仍然需要密码的连接上,因为“ [GET /'var'] pass ”末尾有一个密码

或者

pg db 正在另一台服务器上运行,并且该应用程序不喜欢我尝试在本地计算机上运行它。

我希望你的猜测比我的好。


如果你设法通过这篇文章做到了,赞。非常感谢。如果你设法想出一个解决方案,不知何故,我将永远亲切。

问候,

~Ryan Johnson(RyeGuyHead)

4

1 回答 1

4

将您的 pg_hba.conf 更改为

local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust

或替换trustmd5并指定密码database.yml

于 2011-09-15T02:54:15.767 回答