在open_uri中更改代理设置后。Rb和server_manage。我终于成功地在代理服务器后面安装了neo4j。neo4j服务器在端口7000上运行(它在浏览器中打开),但是当我输入:
$rails generate scaffold post title body
误差:
/.rvm/gems/ruby-2.2.3/gems/neo4j-core-5.1.6/lib/neo4j-server/cypher_session.rb:51:in `open': Server not available on http://localhost:7000 (response code 403) (RuntimeError)
我该怎么办?任何帮助都是感激的!!
$ ruby --version
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
$ rails --version
Rails 4.2.2
我猜是代理问题。在你的浏览器和代码中,事情的表现可能会有所不同(因为它们是两个不同的环境)。
要检查数据库到底发生了什么,您应该尝试从命令行手动向Neo4j发出请求。
使用curl
的示例:
# if auth enabled
curl -i --user username:password http://localhost:7000/db/data/
# if auth disabled
curl -i http://localhost:7000/db/data/
这将给你更多的细节,究竟是什么不工作。
你也可以组装基本的ruby脚本,将HTTP请求,检查你收到的响应在这种情况下。
403可能意味着您的Neo4j身份验证凭据错误。请参阅http://neo4jrb.readthedocs.org/en/5.1.x/Setup.html#rails-configuration了解详细信息,但基本上,向application.rb
添加这样的内容可能会奏效:
config.neo4j.session_options = { basic_auth: { username: 'foo', password: 'bar'} }
另外,既然你提到需要代理的帮助,你可以添加一个initialize
键来设置。
init = { proxy: { uri: 'http://myproxy', user: 'username', password: 'password' }}
auth = { username: 'neo4j', password: 'pwhere'}
config.neo4j.session_options = { basic_auth: auth, initialize: init }