2017-04-06 7 views
9

私は何が変わったのかよくわかりませんが、私のマシンではsolrは起動しません。私は次のエラーを取得する...Mac OS XでSunspot Railsを読み込めません

❯ 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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/ge 
ms/sunspot_solr-2.2.0/solr/webapps/solr.war 
2017-04-06 08:48:06.041:WARN:oejuc.AbstractLifeCycle:FAILED [email protected]: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 [email protected]: 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 
私は、BREWを使用してSolrをインストールし、それを実行し、 http://localhost:8981/solr/#/~loggingのような管理者ページにアクセスしてもらうが、私は使用するために、特に私のレールのアプリとキュウリを得ることができないことができ

そのbrew installバージョン。 bundle exec rake sunspot:solr:runコマンドを動作させることもできません。これはチームの他のすべての人に有効です。

EDIT:

sunspot.yml

development: 
    solr: 
    hostname: localhost 
    port: 8982 
    log_level: INFO 
    min_memory: 512M 
    max_memory: 1G 
    path: /solr/development 

test: 
    solr: 
    hostname: localhost 
    port: 8981 
    log_level: WARNING 
    path: /solr/test 

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> 
+1

'config/sunspot.yml'を投稿できますか? – rposborne

+0

@rposborneさんがそれを追加しました! –

+1

あなたのsolr.xmlを 'solr'ディレクトリから投稿できますか? ポート443がどこから来たのか、configure solrを実行するために他にどのような手順を取ったのか把握する必要があります。 ENV varsやその他の設定はありますか? – rposborne

答えて

5

てみた後にモデル化されSOLR_URL=http://localhost:8981/solr/your-collection-name/

  • config/sunspot.yml

    chown -R $USER /solr 
    

    説明:

    • Permission denied (Bind failed)は、アプリケーションが「doesnの際に発生させ、一般的なエラーです実行するのに十分な権限があります。

    • /solrディレクトリには、(確かにほとんどの場合)

    • 現在のユーザーが

    したがって、私は、現在のユーザーが持っていないことを理解しrootユーザーではありません/Users/noahcあるだけrootユーザーのアクセス許可を持っていますアプリケーションを実行するのに十分な許可。

  • +1

    これはどうやって知っていますか? –

    +0

    これは問題ありません...しかし、私はむしろより完全な答えを見るでしょう。 – jakerella

    +0

    @NoahClark 'Permission denied'は典型的なUnixエラーです。すべての新しいUnixユーザーが直面しているもの: – itsnikolay

    4
    1. あなたがのための絶対パスを設定することで、期待Solrのフォルダを実行していることを確認あなたのSOLR_HOME=/Users/rposborne/code/my-project/solr/confあなたのパスmy be be diff(これは、私のbrewのインストールで、私のプロジェクトのソース管理されたsolrの設定で実行する方法です)
    2. JETTY_ARGSがないことを確認すると、ポートを443に設定し、 。
    3. solr.xmlを更新してください。投稿されたxml設定が日付で表示されます。ご使用のバージョンのsolrにsolr configを使用していることを確認してください。 https://github.com/sunspot/sunspot/blob/master/sunspot_solr/solr/solr/solr.xml

    それが保護ポートであるポート443上で実行しようとしているbundle exec rake sunspot:solr:runのように見えますが、それゆえ「許可が拒否された」の視点。 config/sunspot.ymlで設定されているポートが、予期しているポートに設定されていることを確認する必要があります。8981

    個人的には、sunspotが提供するヘルパーを使用しません。これは、最終的にはプロダクションで扱わなければならない抽象レイヤーを追加するためです。

    他のインストールで太陽黒点をポイントするには、いくつかの方法でそれを設定できます。

    1. ENV変数:sunspotが最初に考慮する環境変数SOLR_URLを設定します。 /solrディレクトリのアクセス権を与えることをconfig/database.yml
    +1

    @noahclark修正するための追加ステップを追加しました。 – rposborne

    +1

    拡張情報ありがとう! – jakerella

    関連する問題