GNU/Linux >> Belajar Linux >  >> Linux

Cara Menginstal Ruby On Rails di Ubuntu 20.04 dengan MySQL, Nginx, Passenger, SSL

Cara Install Ruby On Rails di Ubuntu 20.04 dengan MySQL, Nginx, Passenger, SSL. Ruby adalah bahasa pemrograman open-source yang dinamis yang mengutamakan kesederhanaan dan produktivitas. Ini fitur sintaks mudah yang alami untuk membaca dan menulis. Ruby on Rails adalah kerangka kerja web yang banyak digunakan untuk Ruby yang dibuat untuk membantu pengembang perangkat lunak menjadi lebih produktif.

Nginx adalah server web yang dapat menyediakan transaksi HTTP dan melayani file statis tetapi tidak dapat menjalankan aplikasi Ruby secara langsung. Jadi kami menggunakan Phusion Passenger yang merupakan server aplikasi web sumber terbuka gratis. Ini dirancang untuk menangani permintaan HTTP, memantau dan mengelola proses dan sumber daya, serta memungkinkan administrasi, pemantauan, dan diagnosis masalah.

Dalam panduan ini, Anda akan mengatur Penumpang untuk membantu Nginx melayani aplikasi web Ruby on Rails Anda dan menginstal Let'sEncrypt SSL untuk mengamankan aplikasi Anda.

Prasyarat

  1. Server dengan Ubuntu 20.04
  2. Akses root ke server atau pengguna Anda dengan hak istimewa sudo.
  3. Pengetahuan menengah dalam menggunakan perintah terminal Linux.
  4. Nama domain yang diarahkan ke IP eksternal server Anda.

Pengaturan Server Awal

Perbarui paket server Anda ke yang terbaru.

sudo apt update
sudo apt dist-upgrade -y

Instal Ruby on Rails dengan Rbenv

Untuk memastikan penyiapan berjalan dengan baik, kita akan mulai dengan menambahkan repositori Node.js dan 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

Instal Dependensi

Sekarang Anda dapat menginstal semua dependensi.

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

Instal Rbenv dan Rbenv Build

Rbenv adalah pengelola versi Ruby yang digunakan untuk menginstal Ruby.

Di sini kita akan menginstal Rbenv dan Rbenv-build.

Instal 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

Instal 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

Konfigurasi Versi Ruby

Sekarang Anda dapat mengatur versi Ruby default dan global.

rbenv install 3.1.1
rbenv global 3.1.1

Konfirmasi versi Ruby menggunakan perintah berikut.

ruby -v

Sekarang Anda perlu menginstal bundler.

gem install bundler

Pasang Rel

gem install rails -v 7.0.2.3

Jadikan perintah rails dapat dieksekusi.

rbenv rehash

Konfirmasi versi Rails.

rails -v

Instal MySQL

Dalam tutorial ini kita akan menggunakan MySQL untuk database.

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

Anda dapat mengonfigurasi pengguna dan kata sandi baru di MySQL jika perlu.

Konfigurasi Rails untuk MySQL

Sekarang instal adaptor MySQL untuk Rails

gem install mysql2

Instal Penumpang dan Nginx

Sekarang kita akan menginstal Nginx dan mengkonfigurasi Penumpang.

Instal Nginx.

sudo apt -y install nginx

Instal Penumpang.

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

Tambahkan repositori APY Penumpang.

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

Perbarui dan instal Penumpang.

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

Sekarang konfigurasi penumpang baru akan ditambahkan di dalam direktori conf.d instalasi Nginx.

Mulai ulang Nginx agar pemasangan modul Penumpang diterapkan.

sudo service nginx start

Konfigurasikan Penumpang dengan Rbenv

Edit file konfigurasi Penumpang.

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

Komentari baris yang dimulai dengan passenger_root dan passenger_ruby .

Tambahkan baris berikut ke dalam file.

Ganti nama pengguna di jalur opsi Passenger_ruby dengan nama pengguna tempat Anda menginstal Rbenv.

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

Simpan dan keluar dari file.

Mulai ulang Nginx.

sudo service nginx restart

Buat Proyek Rel Baru

Buat direktori baru untuk proyek Rails Anda atau cukup navigasikan ke direktori mana pun. Di sini kita menavigasi ke direktori web Nginx default.

cd /var/www

Buat proyek Rails.

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

Edit konfigurasi database untuk terhubung ke database Anda.

sudo nano config/database.yml

Ganti nama pengguna dengan username . Anda , sandi dengan password . Anda

Pastikan database.yml terlihat seperti ini

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

Inisialisasi basis data Rails.

rake db:create

Mulai ulang Rel.

rails restart

Konfigurasi Nginx dengan Ruby on Rails

Hapus konfigurasi Nginx default.

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

Buat konfigurasi baru untuk aplikasi Ruby Anda

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

Rekatkan pengaturan konfigurasi baru ini dan tekan Ctrl+X diikuti oleh Y untuk menyimpan file

server {
    listen 80 default_server;
    server_name domainname.com;

    passenger_enabled on;
    passenger_app_env production;

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

Aktifkan konfigurasi baru Anda

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

Validasi konfigurasi Nginx dan mulai ulang nginx

sudo nginx -t
sudo service nginx restart

Instal Let'sEncrypt SSL

Kami dapat menggunakan Certbot untuk menginstal sertifikat SSL Let's Encrypt gratis untuk domain Anda.

sudo apt install python3-certbot-nginx

Jalankan perintah berikut untuk menginstal sertifikat dan mengonfigurasi pengalihan ke HTTPS secara otomatis.

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

Sekarang Anda akan menerima sertifikat SSL dan itu akan dikonfigurasi secara otomatis.

Siapkan perpanjangan otomatis.

sudo certbot renew --dry-run

Sekarang Ruby on Rails terinstal dan dikonfigurasi dengan Passenger dan Nginx dan terhubung dengan database MySQL.

Kunjungi nama domain Anda di browser Anda, Anda dapat melihat halaman selamat datang Ruby on Rails.

Kesimpulan

Sekarang Anda telah mempelajari cara Menginstal Ruby On Rails di Ubuntu 20.04 dengan MySQL dan mengonfigurasi Nginx dengan Passenger dan mengonfigurasi Let'sEncrypt SSL.

Terima kasih atas waktunya. Jika Anda menghadapi masalah atau umpan balik, silakan tinggalkan komentar di bawah.


Linux
  1. Cara Instal Nginx Dengan PHP5 Dan MySQL Di Ubuntu 11.10

  2. Cara Menginstal Joomla dengan Nginx di Ubuntu 18.04

  3. Cara Menginstal Elasticsearch di Ubuntu 22.04 dengan SSL

  1. Cara Menginstal Nginx di Ubuntu 16.04

  2. Cara menginstal Elgg dengan Nginx di Ubuntu 14.04

  3. Cara Menginstal Elgg dengan Nginx di Ubuntu 18.04

  1. Cara Menginstal WordPress dengan Nginx di Ubuntu 18.04

  2. Cara Menginstal Ruby on Rails (RoR) dengan PostgreSQL di Ubuntu 16.04

  3. Cara Menginstal Seafile dengan Nginx di Ubuntu 18.04 LTS