GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar Ruby On Rails en Ubuntu 20.04 con MySQL, Nginx, Passenger, SSL

Cómo instalar Ruby On Rails en Ubuntu 20.04 con MySQL, Nginx, Passenger, SSL. Ruby es un lenguaje de programación dinámico y de código abierto que prioriza la simplicidad y la productividad. Cuenta con una sintaxis fácil que es natural para leer y escribir. Ruby on Rails es un marco web ampliamente utilizado para Ruby que se creó para ayudar a los desarrolladores de software a ser más productivos.

Nginx es un servidor web que puede proporcionar transacciones HTTP y servir archivos estáticos, pero no puede ejecutar aplicaciones Ruby directamente. Así que usamos Phusion Passenger, que es un servidor de aplicaciones web gratuito y de código abierto. Está diseñado para manejar solicitudes HTTP, monitorear y administrar procesos y recursos, así como permitir la administración, el monitoreo y el diagnóstico de problemas.

En esta guía, configurará Passenger para ayudar a Nginx con el servicio de su aplicación web Ruby on Rails e instalará Let'sEncrypt SSL para proteger su aplicación.

Requisitos

  1. Un servidor con Ubuntu 20.04
  2. Acceso raíz a su servidor o usuario con privilegios sudo.
  3. Conocimiento intermedio en el uso de comandos de terminal de Linux.
  4. Nombre de dominio que apunta a la IP externa de su servidor.

Configuración inicial del servidor

Actualice los paquetes de su servidor a su versión más reciente.

sudo apt update
sudo apt dist-upgrade -y

Instalar Ruby on Rails con Rbenv

Para asegurarnos de que la configuración funcione bien, comenzaremos agregando los repositorios Node.js e Yarn.

curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Instalar dependencias

Ahora puedes instalar todas las dependencias.

sudo apt-get update
sudo apt-get install git-core zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn

Instalar Rbenv y Rbenv Build

Rbenv es un administrador de versiones de Ruby que se usa para instalar Ruby.

Aquí instalaremos Rbenv y Rbenv-build.

Instalar Rbenv

cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

Instalar compilación Rbenv

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

Configurar la versión de Ruby

Ahora puede configurar la versión de Ruby predeterminada y global.

rbenv install 3.1.1
rbenv global 3.1.1

Confirme la versión de Ruby usando el siguiente comando.

ruby -v

Ahora necesita instalar el paquete.

gem install bundler

Instalar rieles

gem install rails -v 7.0.2.3

Haz que el comando Rails sea ejecutable.

rbenv rehash

Confirme la versión de Rails.

rails -v

Instalar MySQL

En este tutorial usaremos MySQL para la base de datos.

sudo apt-get install mysql-server mysql-client libmysqlclient-dev
sudo mysql_secure_installation

Puede configurar un nuevo usuario y contraseña en MySQL si lo necesita.

Configurar Rails para MySQL

Ahora instale el adaptador MySQL para Rails

gem install mysql2

Instalar Passenger y Nginx

Ahora instalaremos Nginx y configuraremos Passenger.

Instala Nginx.

sudo apt -y install nginx

Instalar Pasajero.

sudo apt install -y dirmngr gnupg apt-transport-https ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7

Agregue el depósito APY de Pasajeros.

sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger focal main > /etc/apt/sources.list.d/passenger.list'

Actualice e instale Passenger.

sudo apt update
sudo apt install -y libnginx-mod-http-passenger

Ahora se agregará una nueva configuración de pasajeros dentro del directorio conf.d de la instalación de Nginx.

Reinicie Nginx para que la instalación del módulo Pasajero surta efecto.

sudo service nginx start

Configurar pasajero con Rbenv

Edite el archivo de configuración del Pasajero.

sudo nano /etc/nginx/conf.d/mod-http-passenger.conf

Comente las líneas que comienzan con passenger_root y passenger_ruby .

Agregue las siguientes líneas en el archivo.

Reemplazar nombre de usuario en la ruta de la opción Passenger_ruby con el nombre de usuario a través del cual ha instalado Rbenv.

passenger_ruby /home/example_user/.rbenv/shims/ruby;
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;

Guarde y salga del archivo.

Reinicie Nginx.

sudo service nginx restart

Crear nuevo proyecto de rieles

Cree un nuevo directorio para su proyecto de Rails o simplemente navegue a cualquier directorio. Aquí estamos navegando al directorio web predeterminado de Nginx.

cd /var/www

Crear proyecto Rails.

rails new project-name -d mysql
cd project-name

Edite la configuración de la base de datos para conectarse a su base de datos.

sudo nano config/database.yml

Reemplace el nombre de usuario con tu username , contraseña con tu password

Asegúrate de que tu database.yml se parece a esto

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: username
  password: password
  host: locahost
  database: database_name

development: 
  <<: *default 

test: 
  <<: *default

production:
  <<: *default

Inicializa la base de datos de Rails.

rake db:create

Reinicie Rails.

rails restart

Configurar Nginx con Ruby on Rails

Elimina las configuraciones predeterminadas de Nginx.

sudo rm -rf /etc/nginx/sites-available/default
sudo rm -rf /etc/nginx/sites-enabled/default

Cree una nueva configuración para su aplicación Ruby

sudo nano /etc/nginx/sites-available/domainname.conf

Pegue esta nueva configuración y presione Ctrl+X seguido de Y para guardar el archivo

server {
    listen 80 default_server;
    server_name domainname.com;

    passenger_enabled on;
    passenger_app_env production;

    root /var/www/html/project-name/public;
}

Habilite su nueva configuración

sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf

Valide la configuración de Nginx y reinicie nginx

sudo nginx -t
sudo service nginx restart

Instalar Let'sEncrypt SSL

Podemos usar Certbot para instalar el certificado SSL Let's Encrypt gratuito para su dominio.

sudo apt install python3-certbot-nginx

Ejecute el siguiente comando para instalar el certificado y configurar el redireccionamiento a HTTPS automáticamente.

sudo certbot --nginx --redirect --agree-tos --no-eff-email -m [email protected] -d domain.com -d www.domain.com

Ahora debería recibir el certificado SSL y se configurará automáticamente.

Configurar la renovación automática.

sudo certbot renew --dry-run

Ahora Ruby on Rails está instalado y configurado con Passenger y Nginx y conectado con la base de datos MySQL.

Visite su nombre de dominio en su navegador, puede ver la página de bienvenida de Ruby on Rails.

Conclusión

Ahora ha aprendido cómo instalar Ruby On Rails en Ubuntu 20.04 con MySQL y configurar Nginx con Passenger y configurar Let'sEncrypt SSL.

Gracias por tu tiempo. Si tiene algún problema o comentario, deje un comentario a continuación.


Linux
  1. Cómo instalar Nginx con PHP5 y MySQL en Ubuntu 11.10

  2. Cómo instalar Elgg con Nginx en Ubuntu 14.04

  3. Cómo instalar Elgg con Nginx en Ubuntu 18.04

  4. Cómo instalar Joomla con Nginx en Ubuntu 18.04

  5. Cómo instalar Elasticsearch en Ubuntu 22.04 con SSL

Cómo instalar MediaWiki en Ubuntu 20.04 con Apache/Nginx

Cómo instalar Nginx con Let's Encrypt SSL en Ubuntu 20.04 LTS

Cómo instalar Ruby on Rails en Ubuntu 20.04 con RVM

Cómo instalar Apache Tomcat 10 en Ubuntu 20.04 con Nginx

Instale nopCommerce en Ubuntu 20.04, MySQL, Nginx, SSL

Cómo instalar Apache Tomcat 10 en Ubuntu 22.04 con Nginx