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
- Un server con Ubuntu 20.04
- Accesso root al tuo server o utente con privilegi sudo.
- Conoscenza intermedia nell'uso dei comandi del terminale Linux.
- 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.