Standardmäßig,
rails s #running on 3000 port
Jetzt möchte ich es auf Port 80 ausführen. Also habe ich versucht:
sudo rails -s -p80
Aber es warf einen Fehler:
mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo rails s -p80
sudo: rails: command not found
Ich habe rvm verwendet, um Ruby & Rails zu installieren. Es scheint, dass rvm vom Benutzer angegeben wurde. Kann es keine Schienen in der Wurzel finden?
Ich habe auch den folgenden Code ausprobiert:
mlzboy@mlzboy-MacBook ~/my/b2c2 $ which rails
/home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails
mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails s -p80
ruby-on-rails
ruby-on-rails-3
mlzboy
quelle
quelle
rvmsudo
sudo plus rvm als sudo lädt.socket.rb:206:in
Bindung bekommen ': Adresse bereits verwendet - bind (2) für 0.0.0.0:80 (Errno :: EADDRINUSE) `errorLeiten Sie die Anfrage einfach mit dem folgenden Befehl von Port 80 an 3000 weiter:
Eine weitere Option ist:
Denken Sie jedoch daran, diesen Port von Apache oder anderen Diensten freizugeben, die diesen Port normalerweise nutzen. Ich bin mir auch nicht sicher, ob die Erteilung der Sudo-Erlaubnis an RVM ein Sicherheitsproblem hat oder nicht.
quelle
-I
mit-D
, sosudo iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
. Die Antworten hier werden ausführlicher: serverfault.com/questions/159544/undoing-port-forwarding .Wollte vorschlagen
Aber das versucht immer noch, das globale Gemset und nicht das Projekt-Gemset von RVM zu verwenden. So...
rails s
, dass Port 3000 als Nicht-Root-Benutzer ausgeführt wirdÖffnen Sie ein neues Terminal und ...
me=``whoami``; sudo ssh -L 80:127.0.0.1:3000 -l $me -N localhost
(Übrigens, reduzieren Sie die Duplikate in der obigen Zeile auf einzelne, ich kann nicht herausfinden, wie ich es hier richtig entkommen kann.)
Der erste
Password:
ist Ihrroot
Benutzer, der zweite ist das Passwort für jeden, derwhoami
zurückkehrt.Obwohl Sie wahrscheinlich Phusion Passenger installieren und unter Ihrem lokalen Apache einrichten möchten. Es sei denn, Sie versuchen nur, schnell etwas zu demonstrieren, und dies ist natürlich keine dauerhafte Lösung.
quelle
/usr/bin/which rails
Stellen Sie sicher, dass Sie für den Fall verwenden, dass Schienen einen Alias habenWenn Sie RVM verwenden und die Standardeinstellung vorgenommen haben, sollten Sie diese nicht verwenden
sudo
.Gerade:
Jedoch 80 ist ein privilegierter Port, so dass Sie müssen als root ausführen, und Sie werden die Anweisungen für haben folgen Multi-User Installation von RVM.
quelle
Sie können den Server an Port 80 starten
Wenn Port 80 nicht bindet (andere Prozesse verwenden Port 80 nicht).
quelle