2016-03-26 10 views
1

Ich versuche, einen Rails-Server auf dem Shared-Hosting, das ich gerade gekauft habe, zu starten, aber ich habe ein paar kleine Probleme.Rails-Server - Port Probleme

1- Ich kann rails server auf Port 90 nicht starten. Ich erhalte einen Fehler.

/opt/alt/ruby21/lib64/ruby/2.1.0/socket.rb:206:in bind': Permission denied - bind(2) for 67.205.125.31:90 (Errno::EACCES) from /opt/alt/ruby21/lib64/ruby/2.1.0/socket.rb:206:in hören‘ von /opt/alt/ruby21/lib64/ruby/2.1.0/socket. rb: 461: in block in tcp_server_sockets' from /opt/alt/ruby21/lib64/ruby/2.1.0/socket.rb:232:in jeder ' von /opt/alt/ruby21/lib64/ruby/2.1.0/socket.rb:232:in foreach' from /opt/alt/ruby21/lib64/ruby/2.1.0/socket.rb:459:in tcp_server_sockets' von /opt/alt/ruby21/lib64/ruby/2.1. 0/webrick/utils.rb: 75: in create_listeners' from /opt/alt/ruby21/lib64/ruby/2.1.0/webrick/server.rb:132:in hören ' von /opt/alt/ruby21/lib64/ruby/2.1.0/webrick/server.rb:113:in initialize' from /opt/alt/ruby21/lib64/ruby/2.1.0/webrick/httpserver.rb:45:in initialisieren' von/home/tmtcmon/rubyvenv/App/2.1/edelsteine ​​/ rack-1.6.4/lib/rack/handler/webrick.rb: 31: in new' from /home/tmtcmon/rubyvenv/App/2.1/gems/rack-1.6.4/lib/rack/handler/webrick.rb:31:in run ' von/home/tmtcmon/ruby venv/App/2.1/Edelsteine ​​/ rack-1.6.4/lib/rack/server.rb: 286: in start' from /home/tmtcmon/rubyvenv/App/2.1/gems/railties-4.2.6/lib/rails/commands/server.rb:80:in Start ' von /home/tmtcmon/rubyvenv/App/2.1/gems/railties-4.2.6/lib /rails/commands/commands_tasks.rb:80:in block in server' from /home/tmtcmon/rubyvenv/App/2.1/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:75:in tippen Sie auf ' von /home/tmtcmon/rubyvenv/App/2.1/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:75:in server' from /home/tmtcmon/rubyvenv/App/2.1/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in Führen Sie den Befehl aus!' von /home/tmtcmon/rubyvenv/App/2.1/gems/railties-4.2.6/lib/rails/commands.rb:17:in <top (required)>' from bin/rails:4:in require ' von bin/Schienen: 4: in `'

Könnte dieser Fehler durch die Tatsache verursacht werden, dass ich auf einem Shared Hosting bin, daher konnte ich etwas an Port 90 nicht starten, weil es bereits verwendet wird?

2- Ich kann rails server auf Port 3000 nicht starten. (Der Standardport). Dieses Mal kann ich meinen Server starten, aber ich kann ihn nicht mit http//:domain-name.com:3000

starten. 3- Wenn ich rails server auf einem zufälligen Port starte (ich versuchte 30.000) funktioniert der Server perfekt. Das Problem ist http://domain-name.com:30000 nicht wirklich gut aussieht und ich würde nur http // bevorzugen: domain-name.com

Also, mit diesen drei Problemen, drei Fragen:

1- Ist es möglich, zu starten mein Server auf Port 90, auch wenn ich das Hosting geteilt habe? Wenn ja, hast du eine Ahnung, was ich falsch gemacht habe?

2- Warum kann ich nicht effektiv auf Port 3000 starten? (Dieser ist nicht wirklich ein Problem, weil ich den Server lieber auf Port 90 starten würde, aber ich bin neugierig.

3- Ist es eine Möglichkeit, alle meine Verkehr auf Port 30.000 ohne http/umleiten /: Domain-Name: 30000 wird in der Adressleiste angezeigt? Ich habe es geschafft, mit .htacces zu tun, kann der Benutzer eine Verbindung herstellen, indem Sie http // eingeben: Domain-Name, aber es zeigt http://domain-name:30000 in der Adressleiste ...

Vielen Dank im Voraus

EDIT: Sorry, wenn die Frage schon beantwortet, aber wenn ja, könnte ich es nicht nach Stunden der Forschung finden ...

Antwort

2

Sie können nicht an Port 90 oder etwas weniger als 1024 binden, wenn Sie nicht root sind, und wahrscheinlich jemand anderes einen Dienst auf Port 3000 bereits ausführt, können Sie eine netstat -nat | grep 3000 tun, um zu sehen, ob es einen Prozess gibt zu hören.

+0

Danke für die Bearbeitung meiner Post, ich versuche immer noch, mit dem Stil vertraut zu werden ... – Hang

+0

Ich bekomme einen "Befehl nicht gefunden", wenn ich versuche, netstat zu laufen. Ich denke, mein Host lässt mich nicht einige Befehle ausführen (?), Aber es ist durchaus möglich, dass jemand anderes etwas auf Port 3000 ausführt. Ich wusste nicht, dass ein Nicht-root keinen Prozess auf Port <1024 starten konnte. . Vielen Dank ! – DeWitt

+0

können Sie 'curl http versuchen: // localhost: 3000' oder' telnet localhost 3000' oder 'wget -O - http: // localhost: 3000', sollte es einen Befehl geben, den Sie verwenden können, um die Verbindung zu testen. – Hang