Saltar al contenido

Cambiar una aplicación Rails a producción

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 sy 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.

  1. 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

  2. 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 del httpd.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.

  3. Reinicie el servidor (o Apache al menos – service httpd restart )

  4. Ingrese a la carpeta de su proyecto Rails /var/www/html/your_application y comenzar la migración con rake 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).

  5. RAILS_ENV=production rake secret – esto creará una clave_secreta que puede agregar a config/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.

  6. RAILS_ENV=production rake db:migrate

  7. RAILS_ENV=production rake assets:precompile si estas sirviendo static activos. Esto enviará js, css, archivos de imagen al /public carpeta.

  8. 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *