GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare Ruby On Rails su Ubuntu 20.04 con MySQL, Nginx, Passenger, SSL

Come installare Ruby On Rails su Ubuntu 20.04 con MySQL, Nginx, Passenger, SSL. Ruby è un linguaggio di programmazione dinamico e open source che dà priorità alla semplicità e alla produttività. È dotato di una sintassi semplice che è naturale da leggere e scrivere. Ruby on Rails è un framework Web ampiamente utilizzato per Ruby, creato per aiutare gli sviluppatori di software a essere più produttivi.

Nginx è un server web che può fornire transazioni HTTP e servire file statici ma non può eseguire direttamente le applicazioni Ruby. Quindi utilizziamo Phusion Passenger che è un server di applicazioni web gratuito e open source. È progettato per gestire le richieste HTTP, monitorare e gestire processi e risorse, oltre a consentire l'amministrazione, il monitoraggio e la diagnosi dei problemi.

In questa guida, configurerai Passenger per assistere Nginx nel servire la tua applicazione web Ruby on Rails e installerai Let'sEncrypt SSL per proteggere la tua applicazione.

Prerequisiti

  1. Un server con Ubuntu 20.04
  2. Accesso root al tuo server o utente con privilegi sudo.
  3. Conoscenza intermedia nell'uso dei comandi del terminale Linux.
  4. Nome di dominio che punta all'IP esterno del tuo server.

Configurazione iniziale del server

Aggiorna i tuoi pacchetti server all'ultimo.

sudo apt update
sudo apt dist-upgrade -y

Installa Ruby on Rails con Rbenv

Per assicurarci che la configurazione vada bene, inizieremo aggiungendo i repository 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

Installa dipendenze

Ora puoi installare tutte le dipendenze.

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

Installa Rbenv e Rbenv Build

Rbenv è un gestore di versioni di Ruby che viene utilizzato per installare Ruby.

Qui installeremo Rbenv e Rbenv-build.

Installa 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

Installa Rbenv Build

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

Configura versione Ruby

Ora puoi impostare la versione predefinita e globale di Ruby.

rbenv install 3.1.1
rbenv global 3.1.1

Conferma la versione di Ruby usando il seguente comando.

ruby -v

Ora devi installare bundler.

gem install bundler

Installa binari

gem install rails -v 7.0.2.3

Rendi eseguibile il comando rails.

rbenv rehash

Conferma versione Rails.

rails -v

Installa MySQL

In questo tutorial useremo MySQL per il database.

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

Se necessario, puoi configurare nuovo utente e password in MySQL.

Configura Rails per MySQL

Ora installa l'adattatore MySQL per Rails

gem install mysql2

Installa Passenger e Nginx

Ora installeremo Nginx e configureremo Passenger.

Installa Nginx.

sudo apt -y install nginx

Installa Passeggero.

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

Aggiungi il repository APY dei passeggeri.

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

Aggiorna e installa Passeggero.

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

Ora una nuova configurazione del passeggero verrà aggiunta all'interno della directory conf.d dell'installazione di Nginx.

Riavvia Nginx per rendere effettiva l'installazione del modulo Passeggero.

sudo service nginx start

Configura Passeggero con Rbenv

Modifica il file di configurazione del Passeggero.

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

Commenta le righe che iniziano con passenger_root e passenger_ruby .

Aggiungi le seguenti righe al file.

Sostituisci nome utente nel percorso dell'opzione passeggero_ruby con il nome utente attraverso il quale hai installato Rbenv.

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

Salva ed esci dal file.

Riavvia Nginx.

sudo service nginx restart

Crea nuovo progetto Rails

Crea una nuova directory per il tuo progetto Rails o vai semplicemente a qualsiasi directory. Qui stiamo navigando verso la directory web Nginx predefinita.

cd /var/www

Crea progetto Rails.

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

Modifica la configurazione del database per connetterti al tuo database.

sudo nano config/database.yml

Sostituisci il nome utente con il tuo username , password con il tuo password

Assicurati che il tuo database.yml assomiglia a questo

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

Inizializza il database Rails.

rake db:create

Riavvia le rotaie.

rails restart

Configura Nginx con Ruby on Rails

Rimuovi le configurazioni Nginx predefinite.

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

Crea una nuova configurazione per la tua applicazione Ruby

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

Incolla questa nuova impostazione di configurazione e premi Ctrl+X seguito da Y per salvare il file

server {
    listen 80 default_server;
    server_name domainname.com;

    passenger_enabled on;
    passenger_app_env production;

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

Abilita la tua nuova configurazione

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

Convalida la configurazione di Nginx e riavvia nginx

sudo nginx -t
sudo service nginx restart

Installa Let'sEncrypt SSL

Possiamo utilizzare Certbot per installare il certificato SSL Let's Encrypt gratuito per il tuo dominio.

sudo apt install python3-certbot-nginx

Eseguire il comando seguente per installare il certificato e configurare il reindirizzamento a HTTPS automaticamente.

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

Ora dovresti ricevere il certificato SSL e verrà configurato automaticamente.

Imposta il rinnovo automatico.

sudo certbot renew --dry-run

Ora Ruby on Rails è installato e configurato con Passenger e Nginx e connesso al database MySQL.

Visita il tuo nome di dominio sul tuo browser, puoi visualizzare la pagina di benvenuto di Ruby on Rails.

Conclusione

Ora hai imparato come installare Ruby On Rails su Ubuntu 20.04 con MySQL e configurare Nginx con Passenger e configurare Let'sEncrypt SSL.

Grazie per il tuo tempo. In caso di problemi o feedback, si prega di lasciare un commento qui sotto.


Linux
  1. Come installare Nginx con PHP5 e MySQL su Ubuntu 11.10

  2. Come installare Elgg con Nginx su Ubuntu 14.04

  3. Come installare Elgg con Nginx su Ubuntu 18.04

  4. Come installare Joomla con Nginx su Ubuntu 18.04

  5. Come installare Elasticsearch su Ubuntu 22.04 con SSL

Come installare MediaWiki su Ubuntu 20.04 con Apache/Nginx

Come installare Nginx con Let's Encrypt SSL su Ubuntu 20.04 LTS

Come installare Ruby on Rails su Ubuntu 20.04 con RVM

Come installare Apache Tomcat 10 su Ubuntu 20.04 con Nginx

Installa nopCommerce su Ubuntu 20.04, MySQL, Nginx, SSL

Come installare Apache Tomcat 10 su Ubuntu 22.04 con Nginx