GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat Ruby On Rails na Ubuntu 20.04 s MySQL, Nginx, Passenger, SSL

Jak nainstalovat Ruby On Rails na Ubuntu 20.04 s MySQL, Nginx, Passenger, SSL. Ruby je dynamický programovací jazyk s otevřeným zdrojovým kódem, který upřednostňuje jednoduchost a produktivitu. Vyznačuje se snadnou syntaxí, která se přirozeně čte i píše. Ruby on Rails je široce používaný webový rámec pro Ruby, který byl vytvořen, aby pomohl vývojářům softwaru být produktivnější.

Nginx je webový server, který může poskytovat transakce HTTP a obsluhovat statické soubory, ale nemůže přímo spouštět aplikace Ruby. Používáme tedy Phusion Passenger, což je bezplatný webový aplikační server s otevřeným zdrojovým kódem. Je navržen tak, aby zpracovával požadavky HTTP, monitoroval a řídil procesy a zdroje a také umožňoval správu, monitorování a diagnostiku problémů.

V této příručce nastavíte Passenger tak, aby pomáhal Nginxu s obsluhou vaší webové aplikace Ruby on Rails a nainstalujete Let’sEncrypt SSL pro zabezpečení vaší aplikace.

Předpoklady

  1. Server s Ubuntu 20.04
  2. Kořenový přístup k vašemu serveru nebo uživateli s právy sudo.
  3. Středně pokročilá znalost používání příkazů terminálu Linux.
  4. Název domény, který odkazuje na externí IP vašeho serveru.

Počáteční nastavení serveru

Aktualizujte své serverové balíčky na nejnovější.

sudo apt update
sudo apt dist-upgrade -y

Nainstalujte Ruby on Rails pomocí Rbenv

Abychom se ujistili, že nastavení proběhne v pořádku, začneme přidáním repozitářů Node.js a 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

Instalovat závislosti

Nyní můžete nainstalovat všechny závislosti.

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

Nainstalujte Rbenv a Rbenv Build

Rbenv je správce verzí Ruby, který se používá k instalaci Ruby.

Zde nainstalujeme Rbenv a Rbenv-build.

Nainstalujte 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

Nainstalujte 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

Konfigurace verze Ruby

Nyní můžete nastavit výchozí a globální verzi Ruby.

rbenv install 3.1.1
rbenv global 3.1.1

Potvrďte verzi Ruby pomocí následujícího příkazu.

ruby -v

Nyní musíte nainstalovat bundler.

gem install bundler

Instalujte kolejnice

gem install rails -v 7.0.2.3

Udělejte příkaz rails tak, aby byl spustitelný.

rbenv rehash

Potvrďte verzi Rails.

rails -v

Nainstalujte MySQL

V tomto tutoriálu použijeme pro databázi MySQL.

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

Pokud potřebujete, můžete v MySQL nakonfigurovat nového uživatele a heslo.

Konfigurace Rails pro MySQL

Nyní nainstalujte adaptér MySQL pro Rails

gem install mysql2

Nainstalujte Passenger a Nginx

Nyní nainstalujeme Nginx a nakonfigurujeme Passenger.

Nainstalujte Nginx.

sudo apt -y install nginx

Install Passenger.

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

Přidejte úložiště APY pro cestující.

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

Aktualizujte a nainstalujte Passenger.

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

Nyní bude do adresáře conf.d instalace Nginx přidána nová konfigurace cestujících.

Restartujte Nginx, aby se instalace modulu Passenger projevila.

sudo service nginx start

Konfigurace cestujícího pomocí Rbenv

Upravte konfigurační soubor Passenger.

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

Zakomentujte řádky začínající passenger_root a passenger_ruby .

Do souboru připojte následující řádky.

Nahraďte uživatelské jméno v cestě k volbě cestujících_ruby s uživatelským jménem, ​​přes které jste nainstalovali Rbenv.

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

Uložte a ukončete soubor.

Restartujte Nginx.

sudo service nginx restart

Vytvořit nový projekt Rails

Vytvořte nový adresář pro svůj projekt Rails nebo jednoduše přejděte do libovolného adresáře. Zde přecházíme do výchozího webového adresáře Nginx.

cd /var/www

Vytvořit projekt Rails.

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

Upravte konfiguraci databáze pro připojení k databázi.

sudo nano config/database.yml

Nahraďte uživatelské jméno s vaším username , heslo s vaším password

Zkontrolujte, zda je vaše database.yml vypadá takto

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

Inicializujte databázi Rails.

rake db:create

Restartujte Rails.

rails restart

Nakonfigurujte Nginx pomocí Ruby on Rails

Odeberte výchozí konfigurace Nginx.

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

Vytvořte novou konfiguraci pro aplikaci Ruby

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

Vložte toto nové konfigurační nastavení a stiskněte Ctrl+X následuje Y pro uložení souboru

server {
    listen 80 default_server;
    server_name domainname.com;

    passenger_enabled on;
    passenger_app_env production;

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

Povolte novou konfiguraci

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

Ověřte konfiguraci Nginx a restartujte nginx

sudo nginx -t
sudo service nginx restart

Instalovat Let’sEncrypt SSL

Můžeme použít Certbot k instalaci bezplatného certifikátu Let’s Encrypt SSL pro vaši doménu.

sudo apt install python3-certbot-nginx

Provedením následujícího příkazu nainstalujte certifikát a automaticky nakonfigurujte přesměrování na HTTPS.

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

Nyní byste měli obdržet certifikát SSL a bude automaticky nakonfigurován.

Nastavte automatické obnovení.

sudo certbot renew --dry-run

Nyní je Ruby on Rails nainstalován a nakonfigurován s Passenger a Nginx a připojen k databázi MySQL.

Navštivte ve svém prohlížeči název své domény, můžete si prohlédnout uvítací stránku Ruby on Rails.

Závěr

Nyní jste se naučili, jak nainstalovat Ruby On Rails na Ubuntu 20.04 s MySQL a nakonfigurovat Nginx s Passenger a nakonfigurovat Let’sEncrypt SSL.

Díky za váš čas. Pokud narazíte na jakýkoli problém nebo zpětnou vazbu, zanechte prosím komentář níže.


Linux
  1. Jak nainstalovat Nginx s PHP5 a MySQL na Ubuntu 11.10

  2. Jak nainstalovat Elgg s Nginx na Ubuntu 14.04

  3. Jak nainstalovat Joomla s Nginx na Ubuntu 18.04

  1. Jak nainstalovat Nginx na Ubuntu 16.04

  2. Jak nainstalovat Elgg s Nginx na Ubuntu 18.04

  3. Jak nainstalovat Elasticsearch na Ubuntu 22.04 s SSL

  1. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  2. Jak nainstalovat Ruby on Rails (RoR) s PostgreSQL na Ubuntu 16.04

  3. Jak nainstalovat Seafile s Nginx na Ubuntu 18.04 LTS