Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 太阳黑子轨道可以';无法在Mac OS X上加载_Ruby On Rails_Ruby_Macos_Solr - Fatal编程技术网

Ruby on rails 太阳黑子轨道可以';无法在Mac OS X上加载

Ruby on rails 太阳黑子轨道可以';无法在Mac OS X上加载,ruby-on-rails,ruby,macos,solr,Ruby On Rails,Ruby,Macos,Solr,我不知道发生了什么变化,但solr不会在我的机器上启动。我得到以下错误 ❯ bundle exec rake sunspot:solr:run 2017-04-06 08:47:48.624:INFO:oejs.Server:jetty-8.1.8.v20121106 2017-04-06 08:47:48.646:INFO:oejdp.ScanningAppProvider:Deployment monitor /Users/noahc/.rvm/gems/ruby-2.3.3@mbcapp/

我不知道发生了什么变化,但solr不会在我的机器上启动。我得到以下错误

❯ bundle exec rake sunspot:solr:run
2017-04-06 08:47:48.624:INFO:oejs.Server:jetty-8.1.8.v20121106
2017-04-06 08:47:48.646:INFO:oejdp.ScanningAppProvider:Deployment monitor /Users/noahc/.rvm/gems/ruby-2.3.3@mbcapp/gems/sunspot_solr-2.2.0/solr/contexts at interval 0
2017-04-06 08:47:48.654:INFO:oejd.DeploymentManager:Deployable added: /Users/noahc/.rvm/gems/ruby-2.3.3@mbcapp/gems/sunspot_solr-2.2.0/solr/contexts/solr.xml
2017-04-06 08:47:48.723:INFO:oejw.WebInfConfiguration:Extract jar:file:/Users/noahc/.rvm/gems/ruby-2.3.3@mbcapp/gems/sunspot_solr-2.2.0/solr/webapps/solr.war!/ to /private/var/folders/cv/259q741957qc1v7qnf5v4kfm0000gn/T/jetty-0.0.0.0-443-
solr.war-_solr-any-/webapp
2017-04-06 08:47:49.653:INFO:oejw.StandardDescriptorProcessor:NO JSP Support for /solr, did not find org.apache.jasper.servlet.JspServlet
Null identity service, trying login service: null
Finding identity service: null
2017-04-06 08:47:49.679:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/solr,file:/private/var/folders/cv/259q741957qc1v7qnf5v4kfm0000gn/T/jetty-0.0.0.0-443-solr.war-_solr-any-/webapp/},/Users/noahc/.rvm/gems/ruby-2.3.3@mbcapp/ge
ms/sunspot_solr-2.2.0/solr/webapps/solr.war
2017-04-06 08:47:49.680:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/solr,file:/private/var/folders/cv/259q741957qc1v7qnf5v4kfm0000gn/T/jetty-0.0.0.0-443-solr.war-_solr-any-/webapp/},/Users/noahc/.rvm/gems/ruby-2.3.3@mbcapp/ge
ms/sunspot_solr-2.2.0/solr/webapps/solr.war
2017-04-06 08:48:06.041:WARN:oejuc.AbstractLifeCycle:FAILED SocketConnector@0.0.0.0:443: java.net.BindException: Permission denied (Bind failed)
java.net.BindException: Permission denied (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.ServerSocket.bind(ServerSocket.java:375)
        at java.net.ServerSocket.<init>(ServerSocket.java:237)
        at java.net.ServerSocket.<init>(ServerSocket.java:181)
        at org.eclipse.jetty.server.bio.SocketConnector.newServerSocket(SocketConnector.java:96)
        at org.eclipse.jetty.server.bio.SocketConnector.open(SocketConnector.java:85)
        at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316)
        at org.eclipse.jetty.server.bio.SocketConnector.doStart(SocketConnector.java:156)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.server.Server.doStart(Server.java:288)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1266)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1189)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:472)
        at org.eclipse.jetty.start.Main.start(Main.java:620)
        at org.eclipse.jetty.start.Main.main(Main.java:95)
2017-04-06 08:48:06.043:WARN:oejuc.AbstractLifeCycle:FAILED org.eclipse.jetty.server.Server@5d7148e2: java.net.BindException: Permission denied (Bind failed)
java.net.BindException: Permission denied (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.ServerSocket.bind(ServerSocket.java:375)
        at java.net.ServerSocket.<init>(ServerSocket.java:237)
        at java.net.ServerSocket.<init>(ServerSocket.java:181)
        at org.eclipse.jetty.server.bio.SocketConnector.newServerSocket(SocketConnector.java:96)
        at org.eclipse.jetty.server.bio.SocketConnector.open(SocketConnector.java:85)
        at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316)
        at org.eclipse.jetty.server.bio.SocketConnector.doStart(SocketConnector.java:156)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.server.Server.doStart(Server.java:288)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1266)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1189)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:472)
        at org.eclipse.jetty.start.Main.start(Main.java:620)
        at org.eclipse.jetty.start.Main.main(Main.java:95)
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:472)
        at org.eclipse.jetty.start.Main.start(Main.java:620)
        at org.eclipse.jetty.start.Main.main(Main.java:95)
Caused by: java.net.BindException: Permission denied (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.ServerSocket.bind(ServerSocket.java:375)
        at java.net.ServerSocket.<init>(ServerSocket.java:237)
        at java.net.ServerSocket.<init>(ServerSocket.java:181)
        at org.eclipse.jetty.server.bio.SocketConnector.newServerSocket(SocketConnector.java:96)
        at org.eclipse.jetty.server.bio.SocketConnector.open(SocketConnector.java:85)
        at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316)
        at org.eclipse.jetty.server.bio.SocketConnector.doStart(SocketConnector.java:156)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.server.Server.doStart(Server.java:288)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1266)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1189)
        ... 7 more

Usage: java -jar start.jar [options] [properties] [configs]
       java -jar start.jar --help  # for more information
solr.xml

<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
  <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
    <core name="default"     instanceDir="." dataDir="default/data"/>
    <core name="development" instanceDir="." dataDir="development/data"/>
    <core name="test"        instanceDir="." dataDir="test/data"/>
  </cores>
</solr>

  • 通过为您的
    solr_HOME=/Users/rposborne/code/my project/solr/conf
    设置一个绝对路径,验证您正在运行您期望的solr文件夹(这是我告诉我的brew安装在我的项目中的源代码控制的solr配置中运行的方式)
  • 验证您没有任何
    JETTY_ARGS
    ,如果这样做,可能会将端口设置为443并导致权限错误
  • 更新您的
    solr.xml
    。发布的xml配置显示为日期。确保您正在为您的solr版本使用solr配置 透视图

    看起来,
    bundle exec rake sunspot:solr:run
    试图在端口443上运行,该端口是受保护的端口,因此“权限被拒绝”。您应该验证在
    config/sunspot.yml
    中设置的端口是否设置为您期望的端口,可能是
    8981

    就个人而言,我不使用sunspot提供的助手,因为它添加了一层抽象,我最终将不得不在生产中处理

    要将sunspot指向其他安装,您可以通过几种不同的方式进行配置

  • Env变量:设置太阳黑子首先考虑的环境变量SURRURL。代码>解决方案URL=http://localhost:8981/solr/your-集合名称/
  • config/sunspot.yml
    是以
    config/database.yml

  • 尝试为
    /solr
    目录授予权限

    chown -R $USER /solr
    
    说明:

    • 权限被拒绝(绑定失败)
      是当应用程序没有足够的权限运行时引发的典型错误

    • /solr
      目录仅对
      root
      用户具有权限(在大多数情况下是肯定的)

    • 当前用户是
      /Users/noahc
      ,而不是
      根用户

    因此,我理解当前用户没有足够的权限运行该应用程序。

    您可以发布您的
    config/sunspot.yml
    ?@rposborne添加了它!您可以从
    solr
    目录发布您的solr.xml吗?我们需要弄清楚端口443来自何处,您还采取了哪些其他步骤来尝试配置solr?任何环境变量或其他配置?@rposborne我已经发布了solo.xml。我尝试使用brew安装的版本,并更改sunspot solr yml中的路径,以指向brew安装的版本。我检查了环境变量,没有发现任何东西。我想不出其他配置。@NoahClark谢谢你的赏金。我希望我的回答对您有所帮助。@noahclark添加了一些额外的步骤进行修复。感谢您提供的扩展信息!你怎么知道要这么做的?这很好。。。但我更希望看到一个更完整的答案。@NoahClark
    权限被拒绝
    是一个典型的Unix错误。所有新的Unix用户都面临的问题:)@itsnikolay Bind失败,通常意味着Unix无法在操作系统级别打开一个端口,因为SOLR请求的端口低于1000(一个特权端口)。实际告诉我们这是SOLR自己文件的所有权问题吗?@rposborne您的想法和我的一样。我认为这是一个配置问题,因为它试图打开端口443,而不是正确的端口8981
    chown -R $USER /solr