2015-04-29 12 views
9

Chciałbym połączyć serwer szyn z 127.0.0.1, zamiast 0.0.0.0, więc nie jest dostępny, gdy pracuję w kawiarniach.Serwer bindowania do 127.0.0.1 domyślnie

Czy istnieje plik konfiguracyjny gdzie mogę określić tę opcję, więc nie mam do przekazania przełącznik wiersza polecenia:

rails server -b 127.0.0.1 

?

+0

Dla szyn 5 to działało dla mnie w przeciwieństwie do odpowiedzi poniżej: http: // stackoverflow.com/a/33852354/520567 – akostadinov

Odpowiedz

15

Jeśli szukasz Rails 5: Answer


W Rails ~> 4.0 można dostosować punkt startowy klasy serwera:

W /config/boot.rb dodać to linie:

require 'rails/commands/server' 

module Rails 
    class Server 
    def default_options 
     super.merge({Port: 10524, Host: '127.0.0.1'}) 
    end 
    end 
end 

Jak już odpowiedział na to pytanie:

How to change Rails 3 server default port in develoment?

How to change the default binding ip of Rails 4.2 development server?

+0

Pytanie dotyczy połączonego adresu IP, a nie portu. Jestem pewien, że konfiguracja może znajdować się w tym samym pliku, ale byłoby użyteczne określenie tutaj części IP. – sjagr

+0

Dodano parametr Host. – tebayoso

+0

Ten plik jest sprawdzany pod kontrolą wersji, prawda? Jeśli wartość jest tutaj ustawiona, to jest również ustawiona w produkcji. – Matt

0

Można zrobić skrypt bash, aby po prostu uruchom polecenie domyślnie:

#!/bin/bash 
rails server -b 127.0.0.1 

umieścić go w tym samym folderze projektu, nazwa to cokolwiek chcesz (np devserv), następnie

chmod +x devserv 

i wszystko co musisz zrobić, to ./devserv

0

Jeśli umieścisz domyślne opcje dotyczące config/boot.rb wtedy wszystkie atrybuty poleceń za grabie i szyn zawiedzie (przykład: rake -T lub rails g model user)! Więc dołącz to bin/rails po linii require_relative '../config/boot' a kod jest wykonywany tylko dla komendy serwera szyn:

if ARGV.first == 's' || ARGV.first == 'server' 
    require 'rails/commands/server' 
    module Rails 
    class Server 
     def default_options 
     super.merge(Host: '127.0.0.1', Port: 10524) 
     end 
    end 
    end 
end 

W bin/rails plików LOKS tak:

#!/usr/bin/env ruby 
APP_PATH = File.expand_path('../../config/application', __FILE__) 
require_relative '../config/boot' 

# Set default host and port to rails server 
if ARGV.first == 's' || ARGV.first == 'server' 
    require 'rails/commands/server' 
    module Rails 
    class Server 
     def default_options 
     super.merge(Host: '127.0.0.1', Port: 10524) 
     end 
    end 
    end 
end 

require 'rails/commands' 
2

używam Foreman jako kierownik procesu w rozwoju.

Po dodaniu gem 'foreman' do Gemfile i uruchomieniu bundle install, utwórz plik Procfile w katalogu głównym aplikacji.

Chociaż można dodać wiersze do zarządzania innymi procesami, kopalnia właśnie czyta:

web: rails server -p $PORT -b 127.0.0.1 

Następnie, aby uruchomić Rails serwera poprzez Procfile, prowadzony foreman start. Jeśli będziesz mieć tutaj inne procesy (Redis, pracownicy), uruchomią się one w tym samym czasie.

Powiązane problemy