Secara default,
rails s #running on 3000 port
Sekarang saya ingin menjalankannya di port 80. Jadi saya mencoba:
sudo rails -s -p80
Tapi itu membuat kesalahan:
mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo rails s -p80
sudo: rails: command not found
Saya menggunakan rvm untuk menginstal ruby & rails. Sepertinya rvm ditentukan pengguna. Apakah tidak dapat menemukan rel di root?
Saya juga mencoba kode di bawah ini:
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
sumber
sumber
rvmsudo
sudo ditambah memuat rvm sebagai sudo.socket.rb:206:in
bind ': Alamat sudah digunakan - bind (2) untuk 0.0.0.0:80 (Errno :: EADDRINUSE) `errorCukup teruskan permintaan dari port 80 ke 3000 menggunakan perintah di bawah ini:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
Pilihan lainnya adalah:
rvmsudo rails server -p 80
Namun harap diingat untuk membebaskan port ini dari Apache atau layanan lain yang menggunakan port ini secara normal. Juga, saya tidak yakin memberikan izin sudo ke RVM mungkin memiliki masalah keamanan atau tidak?
sumber
-I
dengan-D
, jadisudo iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
. Jawabannya di sini lebih detail: serverfault.com/questions/159544/undoing-port-forwarding .Akan menyarankan
rails=`which rails` ; sudo $rails server -p 80
tapi itu masih mencoba menggunakan gemet global dan bukan proyek gemet dari RVM. Begitu...
rails s
berjalan pada port 3000 sebagai pengguna non-root AndaBuka terminal baru dan ...
me=``whoami``; sudo ssh -L 80:127.0.0.1:3000 -l $me -N localhost
(BTW kurangi duplikat `` menjadi tunggal di baris di atas, saya tidak tahu bagaimana melarikan diri dengan benar di sini.)
Yang pertama
Password:
adalahroot
pengguna Anda , yang kedua adalah kata sandi untuk siapa pun yangwhoami
kembali.Meskipun Anda mungkin ingin menginstal Phusion Passenger dan mengaturnya di bawah Apache lokal Anda. Kecuali jika Anda hanya mencoba mendemonstrasikan sesuatu dengan sangat cepat dan ini tentu saja bukan solusi permanen.
sumber
/usr/bin/which rails
case rails dengan aliasJika Anda menggunakan RVM, dan Anda melakukan pengaturan default, maka Anda tidak boleh menggunakan
sudo
.Hanya:
mlzboy@mlzboy-MacBook ~/my/b2c2 $ rails server -p 80
Namun 80 adalah port yang diistimewakan, jadi Anda perlu menjalankan sebagai root, dan Anda harus mengikuti petunjuk untuk instalasi RVM Multi-Pengguna .
sumber
Anda dapat memulai server pada port 80
rails s -p 80
Jika port 80 tidak mengikat (proses lain tidak menggunakan ke port 80).
sumber