这是我确定的:
我到底能错过什么?我正在运行Ruby Enterprise 1.8.6,Rails 2.3.4,Sphinx 0.9.8.1和Thinking Sphinx 1.2.11。
谢谢!
答案 0 :(得分:1)
昨晚我睡觉的时候打了我。不出所料,这是一个涉及错误配置的愚蠢问题,尽管我对它产生的结果感到惊讶。我想我不太了解思考Sphinx内部。
最近我迁移了服务器。 sphinx.yml看起来像这样:
production:
bin_path: '/usr/local/bin'
host: mysql.mysite.com
在新服务器上,MySQL只是一个本地服务,但我忘记删除该行。有趣的是,手动rake重建索引仍然可以正常工作。我很好奇Think Sphinx在尝试重新加载增量时没有抛出错误,因为mysql.mysite.com不再存在,即使这显然是问题的根源。
感谢您的帮助,很遗憾提出这样一个愚蠢的问题。
答案 1 :(得分:0)
Apache / Nginx的错误日志中是否有任何线索?
答案 2 :(得分:0)
这是我要采取的下一个故障排除步骤。打开您正在使用的delta索引策略的文件(大概是lib/thinking_sphinx/deltas/default_delta.rb
)。找到它实际生成索引命令的行。在我的(v1.1.6)中,它是第20行:
output = `#{config.bin_path}indexer --config #{config.config_file} #{rotate} #{delta_index_name model}`
更改它以便您可以记录命令本身,也可以记录输出:
command = `#{config.bin_path}indexer --config #{config.config_file} #{rotate} #{delta_index_name model}`
RAILS_DEFAULT_LOGGER.info(command)
output = `#{command}`
RAILS_DEFAULT_LOGGER.info(output)
将其部署到生产环境并在修改delta-indexed模型时拖尾日志。希望这实际上会告诉你这个问题。当然,问题可能在代码的其他地方,你甚至都不会达到这一点,但这是我要开始的地方。
答案 3 :(得分:0)
我遇到了这个问题并找到了上面提到的“bin_path”解决方案。当它似乎不起作用时,我花了一段时间才意识到,当我在“停滞”的环境中进行测试时,我已经粘贴了“生产”的示例代码。问题解决了!
这是在确保配置,索引和启动sphinx的rake任务全部作为乘客实例的同一用户运行之后。如果您以root身份登录服务器以运行这些任务,它们将在控制台中工作,但不能通过乘客工作。
答案 4 :(得分:0)
我遇到了同样的问题。在命令行上运行,而不是在应用程序中运行。
事实证明我们仍然有一个我们用于索引的奴隶数据库,但奴隶没有得到更新。
答案 5 :(得分:0)
如上所述,两台机器也面临同样的问题。第一个我们遇到了mysql的问题,在apache2日志中显示。似乎只影响本地OSX机器..
当我们第二次部署到Ubuntu服务器时,我们遇到了同样的问题。 Rails c生产很好,没有错误,bla bla bla。
结束了权限问题。无法解决这个问题,因为开始没有问题,但我想我是以root身份这样做的。
使用capistrano和乘客,我们这样做了:
为我们工作......
祝你好运