1

我对 Rails 和 Mac 还很陌生,正在做我的第一次部署......

我正在尝试在运行 OXS1.6 (Snow Leopard) 的全新 Apple 迷你服务器上设置我的 rails 应用程序。它目前在我的新 iMac i7(相同的操作系统)上运行良好。

我用这个命令开始杂种:

mongrel_rails start -e production -p 3000 -d -a 127.0.0.1 --debug

它开始在 log/mongrel.log 中给出这个输出

** Daemonized, any open files are closed.  Look at log/mongrel.pid and log/mongrel.log for info.
** Starting Mongrel listening at 127.0.0.1:3000
** Installing debugging prefixed filters. Look in log/mongrel_debug for the files.
** Starting Rails with production environment...
/Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/rails/gem_dependency.rb:119:Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010.  Use #requirement
/Users/danadmin/ServiceApp/ServiceApp/app/helpers/input_grid_manager.rb:9: warning: already initialized constant ID_PREFIX
/Users/danadmin/ServiceApp/ServiceApp/app/helpers/input_grid_manager.rb:10: warning: already initialized constant ADD_ID
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
** Rails signals registered.  HUP => reload (without restart).  It might not work well.
** Mongrel 1.1.5 available at 127.0.0.1:3000
** Writing PID file to log/mongrel.pid

我的开发 iMac 上的输出相同(包括警告)。

不同之处在于,http://127.0.0.1:3000在我的 iMac 上访问会提供应用程序的登录页面。在 mac mini-server 上访问相同的结果会导致来自 mongrel 的错误 500 文本:“我们很抱歉,但出了点问题。”

好像rails不起作用。如果我有一些日志文件消息可以指导我,我很擅长弄清楚事情,但是 mongrel.log 没有错误消息(输出与上面相同),并且 log/production.log 是空的(这使得我认为rails还没有开始?)。

我的宝石在机器之间都是相同的版本,应用程序代码也是如此;并且我在任何 mongrel_debug 日志中都看不到任何线索,除了 mac mini-server 和 iMac 上的 rails.log 不同。

在启动和单次访问之后,首先是来自 mac mini-server 的 rails.log:

D, [2010-04-15T13:45:34.870406 #6914] DEBUG -- : TRACING ON Thu Apr 15 13:45:34 +1200 2010
Thu Apr 15 13:46:08 +1200 2010 REQUEST /
--- !map:Mongrel::HttpParams 
SERVER_NAME: 127.0.0.1
HTTP_ACCEPT: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_CACHE_CONTROL: max-age=0
HTTP_HOST: 127.0.0.1:3000
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_0; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2
REQUEST_PATH: /
SERVER_PROTOCOL: HTTP/1.1
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.8
REMOTE_ADDR: 127.0.0.1
PATH_INFO: /
SERVER_SOFTWARE: Mongrel 1.1.5
SCRIPT_NAME: /
HTTP_VERSION: HTTP/1.1
REQUEST_URI: /
SERVER_PORT: "3000"
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.3
REQUEST_METHOD: GET
GATEWAY_INTERFACE: CGI/1.2
HTTP_ACCEPT_ENCODING: gzip,deflate,sdch
HTTP_CONNECTION: keep-alive

在我的 iMac 上,除了添加了 HTTP_COOKIE 和 HTTP_IF_NONE_MATCH 之外,它看起来是一样的,这是我 iMac 的 rails.log

# Logfile created on Thu Apr 15 13:41:42 +1200 2010 by logger.rb/22285
D, [2010-04-15T13:41:42.934088 #2070] DEBUG -- : TRACING ON Thu Apr 15 13:41:42 +1200 2010
Thu Apr 15 13:42:05 +1200 2010 REQUEST /
--- !map:Mongrel::HttpParams 
SERVER_NAME: 127.0.0.1
HTTP_ACCEPT: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_HOST: 127.0.0.1:3000
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2
REQUEST_PATH: /
SERVER_PROTOCOL: HTTP/1.1
HTTP_IF_NONE_MATCH: "\"216cc63ce3c1f286ef8dd4f18f354f6e\""
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.8
REMOTE_ADDR: 127.0.0.1
PATH_INFO: /
SERVER_SOFTWARE: Mongrel 1.1.5
SCRIPT_NAME: /
HTTP_COOKIE: _ServiceApp_session=BAh7DDonY3VzdG9tZXJfbGlzdF9maWx0ZXJfam9iX3N0YXR1c19pZGn6Og9zZXNzaW9uX2lkIiU0ZTk1ZWZjMmViMGU3NjE2YzA0NDc2YTkxYzJlNDZiOToaY3VycmVudF9jdXN0b21lcl9uYW1lIilUSEUgQ1VTVE9NRVIgTkFNRSBORUVEUyBUTyBCRSBMT0FERUQ6EF9jc3JmX3Rva2VuIjFuT1JMUWk0NlZrWlM3c2lUN3BaWCs5NkhRajhxYnFwRnhzVHVTWXEvUWY0PToZam9iX2xpc3RfZmlsdGVyX3RleHQiADogam9iX2xpc3RfZmlsdGVyX2VtcGxveWVlX2lkafo6HmN1c3RvbWVyX2xpc3RfZmlsdGVyX3RleHQiAA%3D%3D--d01bc5d0b457ad524d16cb3402b5dfed9afce83d
HTTP_VERSION: HTTP/1.1
REQUEST_URI: /
SERVER_PORT: "3000"
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.3
REQUEST_METHOD: GET
GATEWAY_INTERFACE: CGI/1.2
HTTP_ACCEPT_ENCODING: gzip,deflate,sdch
HTTP_CONNECTION: keep-alive

任何方向或想法将不胜感激。谢谢。

4

2 回答 2

0

我希望您已经为您的应用程序设置了数据库。如果不这样做rake db:create:all并迁移您的数据库rake db:migrate RAILS_ENV="production"。猜你还没有为生产设置数据库。

编辑:是的,看起来您创建了一个用于开发而不是用于生产的数据库。因此它可以在开发模式(即在您的 iMac 上)运行良好,但不能在生产模式下运行。通过键入如上所示的第一个命令,为您的生产模式创建一个数据库。

于 2010-04-15T03:12:45.960 回答
0

也使用乘客进行开发和生产。它减少了不时启动杂种的麻烦。您也可以使用乘客 prefpane 来启动您的应用程序。

于 2010-04-16T02:35:39.630 回答