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
- Server s Ubuntu 20.04
- Kořenový přístup k vašemu serveru nebo uživateli s právy sudo.
- Středně pokročilá znalost používání příkazů terminálu Linux.
- 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.