Как поменять рельсы 3 порт сервера по умолчанию в Девеломент?
на моей машине разработки, я использую порт 10524. Поэтому я запускаю свой сервер таким образом:
rails s -p 10524
есть ли способ изменить порт по умолчанию на 10524, чтобы мне не приходилось добавлять порт каждый раз при запуске сервера?
9 ответов:
во - первых-не редактируйте ничего в своем пути драгоценного камня! Это повлияет на все проекты, и у вас будет много проблем позже...
в вашем проекте edit
script/railsтаким образом:#!/usr/bin/env ruby # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. APP_PATH = File.expand_path('../../config/application', __FILE__) require File.expand_path('../../config/boot', __FILE__) # THIS IS NEW: require "rails/commands/server" module Rails class Server def default_options super.merge({ :Port => 10524, :environment => (ENV['RAILS_ENV'] || "development").dup, :daemonize => false, :debugger => false, :pid => File.expand_path("tmp/pids/server.pid"), :config => File.expand_path("config.ru") }) end end end # END OF CHANGE require 'rails/commands'принцип прост-вы обезьяна - исправление бегуна сервера-так что это будет влиять только на один проект.
обновление: Да, я знаю, что есть более простое решение с помощью скрипта bash, содержащего:
#!/bin/bash rails server -p 10524но это решение имеет серьезный недостаток-это скука как черт.
Я хотел бы добавить следующее
config/boot.rb:require 'rails/commands/server' module Rails class Server alias :default_options_alias :default_options def default_options default_options_alias.merge!(:Port => 3333) end end end
еще одна идея для вас. Создайте задачу rake, которая вызывает rails server с помощью-p.
вызовtask "start" => :environment do system 'rails server -p 3001' endrake startвместоrails server
объединение двух предыдущих ответов, для Rails 4.0.4 (и вверх, предположительно), этого достаточно в конце
config/boot.rb:require 'rails/commands/server' module Rails class Server def default_options super.merge({Port: 10524}) end end end
мы используем Puma в качестве веб-сервера, и dotenv для установки переменных среды в процессе разработки. Это означает, что я могу установить переменную окружения для
PORT, и ссылаться на него в конфигурации Puma.# .env PORT=10524 # config/puma.rb port ENV['PORT']тем не менее, вы должны будете начать свое приложение с
foreman startвместоrails s, в противном случае конфигурация puma не читается должным образом.мне нравится этот подход, потому что конфигурация работает одинаково в разработке и производстве, вы просто меняете значение порта при необходимости.
решение для рельсов 2.3 -
script/server:#!/usr/bin/env ruby require 'rack/handler' module Rack::Handler class << WEBrick alias_method :old_run, :run end class WEBrick def self.run(app, options={}) options[:Port] = 3010 if options[:Port] == 3000 old_run(app, options) end end end require File.dirname(__FILE__) + '/../config/boot' require 'commands/server'
вдохновленный Радеком и Спенсером... На Рельсах 4(.0.2-Ruby 2.1.0 ), я смог добавить это к config / boot.РБ:
# config/boot.rb # ...existing code require 'rails/commands/server' module Rails # Override default development # Server port class Server def default_options super.merge(Port: 3100) end end endвсе остальные конфигурации в default_options по-прежнему установлены, и параметры командной строки по-прежнему переопределяют значения по умолчанию.
вы можете установить
$ gem install foreman, и используйте foreman для запуска вашего сервера, как определено в вашемProcfileкак:web: bundle exec rails -p 10524вы можете проверить
foremangem docs здесь:https://github.com/ddollar/foreman для получения дополнительной информациипреимущество этого подхода заключается не только в том, что вы можете легко установить/изменить порт в конфигурации и что для этого не требуется много кода, но также вы можете добавить различные шаги в
Procfileчто бригадир будет работать для вас, так что у вас нет на них каждый раз, когда вы хотите запустить приложение что-то вроде:bundle: bundle install web: bundle exec rails -p 10524 ... ...Ура
Comments