Revisamos cada artículo en nuestra página web con la meta de mostrarte siempre la información certera y actual.
Solución:
Esto ahora sería
rails server -e production
O más compacto
rails s -e production
Funciona para proyectos de rieles 3+.
Cómo configurar y ejecutar una aplicación Rails 4 en modo de producción (paso a paso) usando Apache y Phusion Passenger:
Normalmente, podrá ingresar a su proyecto Rails, rails s
y obtenga una versión de desarrollo de su aplicación en http://something.com:3000. El modo de producción es un poco más complicado de configurar.
He estado jugando con esto por un tiempo, así que pensé que escribiría esto para los novatos (como yo). Hay algunos pequeños ajustes que se han extendido por Internet y pensé que esto podría ser más fácil.
-
Consulte esta guía para la configuración central del servidor (CentOS 6, pero debería aplicarse a casi todos los tipos de Linux): https://www.digitalocean.com/community/tutorials/how-to-setup-a-rails-4 -app-con-apache-y-pasajero-en-centos-6
-
Asegúrese de que después de configurar Passenger haya editado el
/etc/httpd/conf/httpd.conf
archivo para reflejar la estructura de su directorio. Quiere apuntar DocumentRoot a su proyecto Rails / carpeta pública En cualquier lugar delhttpd.conf
archivo que tiene este tipo de directorio:/var/www/html/your_application/public
necesita ser actualizado o todo se volverá muy frustrante. No puedo enfatizar esto lo suficiente. -
Reinicie el servidor (o Apache al menos –
service httpd restart
) -
Ingrese a la carpeta de su proyecto Rails
/var/www/html/your_application
y comenzar la migración conrake db:migrate
. Asegúrese de que exista una tabla de base de datos, incluso si planea agregar tablas más adelante (esto también es parte del paso 1). -
RAILS_ENV=production rake secret
– esto creará una clave_secreta que puede agregar aconfig/secrets.yml
. Ustedes poder copie / pegue esto en config / secrets.yml para que todo funcione, aunque le recomiendo que no lo haga. Personalmente, hago este paso para asegurarme de que todo lo demás funciona, luego lo cambio y lo obtengo más tarde. -
RAILS_ENV=production rake db:migrate
-
RAILS_ENV=production rake assets:precompile
si estas sirviendo static activos. Esto enviará js, css, archivos de imagen al/public
carpeta. -
RAILS_ENV=production rails s
En este punto, su aplicación debería estar disponible en http://something.com/whatever
en vez de :3000
. Que no, passenger-memory-stats
y ver si hay una entrada como 908 469.7 MB 90.9 MB Passenger RackApp: /var/www/html/projectname
Probablemente me haya perdido algo atroz, pero esto me ha funcionado en el pasado.
Si está ejecutando en Passenger, entonces el valor predeterminado es ejecutar en producción, en su configuración de apache:
ServerName application_name.rails.local
DocumentRoot "/Users/rails/application_name/public"
RailsEnv production ## This is the default
Si solo está ejecutando un servidor local con mongrel o webrick, puede hacer:
./script/server -e production
o en bash:
RAILS_ENV=production ./script/server
en realidad, anular la constante RAILS_ENV en el entorno.rb probablemente debería ser su último recurso, ya que probablemente no se mantendrá establecido (vea otra respuesta que di al respecto)
Si sostienes alguna sospecha o disposición de acrecentar nuestro ensayo te recomendamos dejar una nota y con deseo lo observaremos.