servidor rails proyecto pagina iniciar curso crear con comandos ruby-on-rails

ruby-on-rails - proyecto - ruby on rails download



¿Cómo cambiar el puerto predeterminado del servidor de Rails 3 en desarrollo? (9)

Combinando dos respuestas anteriores, para Rails 4.0.4 (y arriba, presumiblemente), esto es suficiente al final de config/boot.rb :

require ''rails/commands/server'' module Rails class Server def default_options super.merge({Port: 10524}) end end end

En mi máquina de desarrollo, utilizo el puerto 10524. Así que inicio mi servidor de esta manera:

rails s -p 10524

¿Hay alguna manera de cambiar el puerto predeterminado a 10524 para no tener que agregar el puerto cada vez que inicie el servidor?


Cree un alias en su shell para comando con un puerto especificado.


Estamos utilizando Puma como un servidor web, y dotenv para establecer variables de entorno en desarrollo. Esto significa que puedo establecer una variable de entorno para PORT , y hacer referencia a ella en la configuración de Puma.

# .env PORT=10524 # config/puma.rb port ENV[''PORT'']

Sin embargo, tendrás que iniciar tu aplicación con foreman start lugar de rails s , de lo contrario la configuración de puma no se leerá correctamente.

Me gusta este enfoque porque la configuración funciona de la misma manera en el desarrollo y la producción, solo cambia el valor del puerto si es necesario.


Inspirado por Radek y Spencer ... On Rails 4 (.0.2 - Ruby 2.1.0), pude agregar esto a config / boot.rb :

# 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

El resto de la configuración en opciones predeterminadas aún están configuradas, y los modificadores de línea de comandos aún anulan los valores predeterminados.


Me gusta agregar lo siguiente a 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


Primero, ¡no edite nada en su camino de gema! Influirá en todos los proyectos, y tendrá muchos problemas más adelante ...

En su proyecto edite el script/rails esta manera:

#!/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''

El principio es simple: estás aplicando parches a los corredores del servidor, por lo que influirá solo en un proyecto.

ACTUALIZACIÓN : Sí, sé que existe una solución más simple con script bash que contiene:

#!/bin/bash rails server -p 10524

pero esta solución tiene un serio inconveniente: es aburrido como el infierno.


Puede $ gem install foreman instalación de $ gem install foreman , y usar el capataz para iniciar su servidor como se define en su Procfile como:

web: bundle exec rails -p 10524

Puede consultar docs de foreman gem aquí: https://github.com/ddollar/foreman para obtener más información

El beneficio de este enfoque no es solo que puede configurar / cambiar el puerto en la configuración fácilmente y que no requiere mucho código para ser agregado, sino que también puede agregar diferentes pasos en el Procfile que el capataz ejecutará para usted, de modo Debes pasar por ellos cada vez que quieras comenzar tu aplicación, algo así como:

bundle: bundle install web: bundle exec rails -p 10524 ... ...

Aclamaciones


Solution for Rails 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''


Una idea más para ti Cree una tarea de rake que llame al servidor rails con la opción -p.

task "start" => :environment do system ''rails server -p 3001'' end

luego, llame al rake start lugar del rails server de rails server