Kā instalēt un konfigurēt Ruby ar Rbenv, Rails, MariaDB, Nginx, SSL un Passenger Ubuntu 17.04

Ruby on Rails ir populārs Ruby tīmekļa ietvars, kas tika izstrādāts, lai palielinātu programmētāja produktivitāti. Tomēr dažkārt var būt sarežģīti dažādu dārgakmeņu un atkarību sadarbošanās. Šī rokasgrāmata palīdzēs jums izveidot pilnībā ražošanai gatavu Rails vidi, tostarp bieži izmantotos dārgakmeņus un atkarības.

Prasības

  • Vultr instance ar vismaz 512 MB RAM (vēlams 1024 MB).
  • Vultr instance, kurā darbojas Ubuntu 17.04.

Šajā rokasgrāmatā izmantotā kaudze

  • Nginx : ātrs un jaudīgs tīmekļa serveris. (versija 1.10.3)
  • Pasažieris : lietotņu serveris, kas palīdzēs Nginx apkalpot jūsu lietotni Ruby. (versija 1.5.1.8)
  • Rbenv : Ruby versijas pārvaldnieks. (versija 1.1.1-2)
  • Rubīns : (versija 2.4.1)
  • MariaDB : MySQL servera atvērtā koda filiāle (versija 10.2)
  • SSL sertifikāts no Let's Encrypt

Uzstādīšana

Pievienojiet Sudo lietotāju

Piezīme . Ļoti ieteicams nevienu no šiem pakalpojumiem neinstalēt kā root, jo jūs varat pakļaut sevi uzbrukumam. Lietotāja deployvai applietotāja iestatīšana ir izplatīta metode:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Sistēmas atjaunināšana un jaunināšana

Pārliecinieties, vai savā Ubuntu VM izmantojat visas jaunākās pakotnes:

sudo apt-get update && sudo apt-get upgrade -y

Instalējiet Build System

Lai varētu kompilēt Ruby, izmantojot rbenv un citus dārgakmeņus, ir jāinstalē dažādas pakotnes. Atkarībā no Ruby versijas, kas jums būs nepieciešama, dažas pakotnes var nebūt vajadzīgas.

Sastādīšana
sudo apt-get install -y curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev
sudo apt-get install -y libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev
sudo apt-get install -y python-software-properties libffi-dev
sudo apt-get install -y build-essential openssl libreadline6 libreadline6-dev libreadline-dev
sudo apt-get install -y automake libtool bison pkg-config bison autoconf libc6-dev ncurses-dev
sudo apt-get install -y libapr1-dev libaprutil1-dev libx11-dev libffi-dev tcl-dev tk-dev
SSL atbalsta pakotnes

Tie ir nepieciešami, lai apkopotu vairākus dārgakmeņus, piemēram, Pasažieris:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Versionēšana

Ruby kopiena izmanto Git kā izvēlētu SCM; bet var instalēt arī papildu, piemēram, Mercurial vai Subversion:

sudo apt-get install -y git git-core
Datu bāzes draiveri MySQL / MariaDB
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

Nepieciešams vairākiem populāriem dārgakmeņiem, kuriem nepieciešami vietējie XML libsi:

sudo apt-get install -y libxml2-dev libxslt-dev
Node.js

Pievienojiet oficiālās krātuves no Node ar jaunāko versiju, jo noklusējuma Ubuntu krātuves mēdz atpalikt no dažām galvenajām versijām:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Izvēles pakotnes

Šīs pakotnes nav nepieciešamas, lai sistēma darbotos, taču tās ir labas, ja jums ir jāizmanto noteikti dārgakmeņi.

Grafiki un attēli

Šīs bibliotēkas nav nepieciešamas, un tās var izlaist, ja vien neplānojat izmantot attēlu manipulācijas dārgakmeņus; piemēram, Rmagick:

sudo apt-get install -y imagemagick libmagickwand-dev libvips-dev

SQLite un PostgreSQL datu bāzes draiveri

Instalējiet SQLite vai PostgreSQL draiverus, ja nepieciešams izveidot savienojumu ar citām datu bāzēm vai dodiet priekšroku vienkāršai vietējai DB:

sudo apt-get install -y libsqlite3-dev sqlite3  libpq-dev postgresql postgresql-contrib

Rīki

Utilītas, kuras parasti netiek iepriekš instalētas jaunā Ubuntu instalācijā. Jūtieties brīvi instalēt savu izvēlēto teksta redaktoru:

sudo apt-get install -y iotop htop nano vim

Instalējiet MariaDB serveri

MariaDB ir spēcīgs relāciju SQL serveris, kas ir pilnībā savietojams ar MySQL. Vienkāršākais veids, kā instalēt jaunāko MariaDB versiju, ir izmantot oficiālās krātuves:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386] http://ftp.utexas.edu/mariadb/repo/10.2/ubuntu zesty main'
sudo apt update
sudo apt install -y mariadb-server

Izpildiet norādījumus un iestatiet root paroli. Pēc tam pārbaudiet, vai varat piekļūt jaunajai instalācijai:

mysql -V 

Tas parādīs rindu, kas līdzīga šim:

mysql  Ver 15.1 Distrib 10.2.8-MariaDB, for debian-linux-gnu (x86_64) using readline 5

Piesakieties MySQL čaulā:

mysql -h localhost -u root -p 

Piezīme : izmantojiet, \qlai izietu.


Instalējiet Rbenv un Ruby

Rbenv

Instalējiet Rbenv, izmantojot git. Šī ir vienkāršākā instalēšanas metode, kas ļauj viegli atjaunināt vēlāk. Instalējiet arī ruby-build, tā ir atbildīga par dažādu Ruby versiju faktisko apkopošanu:

cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

Piezīme . Ja jums ir jāatjaunina vienkārši cd ~/.rbenvun git pull.

Padariet Rbenv un Ruby-build pieejamus čaulā. Lai nodrošinātu, ka eksporta līnijas saņemt ievietots sākumā uz .bashrcfailu, kas ir svarīgi, lai nav interaktīvas bash komandas, izmantojiet šīs rindas:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.temp_bashrc
echo 'eval "$(rbenv init -)"' >> ~/.temp_bashrc
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.temp_bashrc

cat ~/.temp_bashrc ~/.bashrc > ~/.combined_bashrc && mv ~/.combined_bashrc ~/.bashrc && rm ~/.temp_bashrc

exec $SHELL

Pārbaudiet, vai Rbenv un Ruby-build ir instalēti un ir pieejami čaulā:

rbenv install --list

Ja rbenvtas netiek atpazīts, izrakstieties un piesakieties atpakaļ čaulā.

Izveidojiet ~/.bash_profilefailu un norādiet uz ~/.bashrcfaila avotu . Ja jums ir jāpalaiž kādas neinteraktīvas čaulas komandas no savas Rails lietotnes, piemēram, cron uzdevumi, ko iestatījis whenevergem, tā izmantos to pašu Ruby versiju kā jūsu interaktīvais apvalks. Tas var palīdzēt novērst dīvainas kļūdas. Pievienojiet ~/.bash_profilefailam šo rindiņu :

if [ -f $HOME/.bashrc ]; then
        source $HOME/.bashrc
fi

Rubīns

Instalējiet Ruby 2.4.1:

rbenv install 2.4.1

Piezīme . Šis process var ilgt 5–15 minūtes atkarībā no jūsu virtuālās mašīnas resursiem, un nav progresa joslas.

Padariet Rbenv pieejamu visur.

rbenv global 2.4.1

Pasažieris un Nginx

Pievienojiet PGP atslēgu un HTTPS atbalstu apt:

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

Pievienojiet pasažieru repozitoriju:

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

Instalējiet Passenger + Nginx moduļus:

sudo apt-get install -y nginx
sudo apt-get install -y libnginx-mod-http-passenger

Apmeklējiet savu Vultr gadījumu, izmantojot tā domēna nosaukumu vai IP, lai tos pārbaudītu šajā brīdī. Ja tie darbojas, jūsu lapā tiks rādīta noklusējuma Nginx sveiciena lapa.

Setup Rails, App un Configure Passenger

Instalējiet komplektu un sliedes:

gem install bundler rails --no-ri --no-rdoc

Ubuntu/Debian konvencija paredz jūsu lietotnes iestatīšanu /var/www. Pēc noklusējuma to var rakstīt tikai ar sakni. Lai iestatīšana darbotos, piešķiriet īpašumtiesības sudo lietotājam deploy:

sudo chown deploy:deploy /var/www -R

Ģenerējiet sliedes lietotni /var/www/. Ja jums jau ir lietotne, kuru vēlaties izvietot, git cloneto šeit un pēc tam palaidiet bundle:

cd /var/www
rails new example --database=mysql
Konfigurējiet Pasažieru, lai norādītu uz lietotni.
  1. Sagatavojiet Nginx.

    sudo nano /etc/nginx/nginx.conf
    
  2. Mainīt lietotāju uz deploy.

    user deploy;
    
  3. Šajā httpsadaļā config, ir jābūt līnija, kas liek Nginx ielādēt moduļus, tostarp pasažieri. Ja tā trūkst, varat to pievienot uzreiz aiz Virtual Host Configsvirsraksta, bet pirms sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Rediģēt/izveidot passenger.conffailu.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Pastāstiet Pasažierim izmantot mūsu Rbenv iestatījumus. Tajā var būt rindiņa, kas norāda uz Ruby versiju, kas iekļauta komplektācijā Passenger, vienkārši izdzēsiet vai komentējiet to.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Iestatiet virtuālo saimniekdatoru, lai norādītu uz lietotni /var/www/example/.

    sudo nano /etc/nginx/sites-enabled/example.conf
    
    
    server {
      listen 80;
      server_name example.com www.example.com;
      root /var/www/example/public;
      passenger_enabled on;
    
      # When you are ready to switch to production mode - change this to `production`
      passenger_app_env development; # <-- !important      
    }
    
  7. Restartējiet Nginx.

    sudo service nginx restart
    

Šajā brīdī jūsu lietojumprogramma ir gatava lietošanai izstrādes režīmā. Lai pārslēgtos uz ražošanas režīmu, jums jāatgriežas pie Nginx konfigurācijas un jāmaina rails_enviestatījums uz production.

Pirms pāriet uz ražošanas režīmā, jums joprojām ir nepieciešams, lai iestatītu savu ražošanas bāzi example_production, database.ymlun slepeno atslēgu. Apskatiet tādus rīkus kā Capistrano vai Mina, lai paātrinātu lietojumprogrammas izvietošanas procesu. Laba prakse ir izmantot ENV mainīgos ar tādu dārgakmeni kā dotenv, un neievietot savas paroles, slepenās atslēgas un tamlīdzīgus git repozitorijā.

Iestatiet SSL

Ir vairāki pakalpojumi, kas piedāvā SSL sertifikātus jūsu domēnam, daudzi no tiem ir maksas, un daži ir bezmaksas. Iestatiet SSL neatkarīgi no tā, kādu pakalpojumu izmantojat. Let's Encrypt ir ļoti vienkārši un bez maksas lietojams. Let's Encrypt ir bezpeļņas organizācija, kuru atbalsta daudzi tehnoloģiju giganti.

Uzstādīšana

Palaidiet tālāk norādītās komandas un izpildiet norādījumus.

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
sudo certbot --nginx
sudo certbot renew --dry-run

Ja tagad apmeklēsit savu Vultr instanci, izmantojot HTTPS, jūs redzēsit drošu vietni.

Atjaunošana

Jūsu tikko izsniegtā sertifikāta derīguma termiņš beigsies, un tas būs periodiski jāatjauno. Vienkāršākais veids, kā to izdarīt, ir iestatīt cron darbu.

sudo crontab -e 
30 2 * * 1 /usr/bin/certbot renew 

Kā pēdējo, bet neobligāto darbību pārstartējiet virtuālo mašīnu un pārliecinieties, vai visi pakalpojumi tiek restartēti, kā paredzēts.


Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

VULTR nesen veica izmaiņas, un tagad visam vajadzētu darboties labi, ja ir iespējots NetworkManager. Ja vēlaties atspējot

Docker CE instalēšana Ubuntu 16.04

Docker CE instalēšana Ubuntu 16.04

Vai izmantojat citu sistēmu? Docker ir lietojumprogramma, kas ļauj izvietot programmas, kas tiek darbinātas kā konteineri. Tas tika uzrakstīts populārajā Go programmā

Netīrās govs eksploīta ielāgošana vietnē CentOS

Netīrās govs eksploīta ielāgošana vietnē CentOS

Kas ir netīrā govs (CVE-2016-5195)? Netīrās govs ievainojamība tiek izmantota, izmantojot to, kā Linux apstrādā kodu. Tas ļauj nepievilinātam lietotājam gai

Iestatiet laika joslu un NTP operētājsistēmā Ubuntu 14.04

Iestatiet laika joslu un NTP operētājsistēmā Ubuntu 14.04

Vultr serveri var nebūt izvietoti ar jūsu serverī nepieciešamo laika joslu/datumu/laiku. Par laimi mēs varam manuāli iestatīt laika joslu, lai novērstu problēmas

Rust instalēšana Ubuntu 14.04

Rust instalēšana Ubuntu 14.04

Rust, plaši pazīstama kā Rust-Lang, ir sistēmas programmēšanas valoda, ko izstrādā Mozilla un atbalsta LLVM. Rūsa ir pazīstama ar programmu novēršanu

Kā instalēt osTicket uz FreeBSD 12

Kā instalēt osTicket uz FreeBSD 12

Vai izmantojat citu sistēmu? osTicket ir atvērtā koda klientu atbalsta biļešu sistēma. osTicket pirmkods ir publiski mitināts vietnē Github. Šajā apmācībā

Darbs ar Linux iespējām

Darbs ar Linux iespējām

Ievads Linux iespējas ir īpaši atribūti Linux kodolā, kas piešķir procesiem un binārajiem izpildāmajiem failiem īpašas privilēģijas, kas ir normālas.

Kā instalēt JuliaLang Ubuntu 17.04

Kā instalēt JuliaLang Ubuntu 17.04

Julia, plaši pazīstama kā JuliaLang, ir programmēšanas valoda skaitliskajai skaitļošanai. Džūlija ir tikpat ātra kā C, taču tas neupurē lasāmību

Augsta pieejamība, izmantojot privāto tīklu Ubuntu 16.04 ar Keepalived

Augsta pieejamība, izmantojot privāto tīklu Ubuntu 16.04 ar Keepalived

Dažām augstas pieejamības arhitektūrām nepieciešama peldoša IP adrese. Šī funkcionalitāte ir pieejama Vultr platformā, tiklīdz ir izveidots privātais tīkls

Iestatiet tikai SFTP lietotāju kontus Ubuntu 14

Iestatiet tikai SFTP lietotāju kontus Ubuntu 14

Ievads Dažos gadījumos ir nepieciešams izveidot lietotājus ar lasīšanas un rakstīšanas piekļuvi vienam direktorijam, tikai izmantojot FTP. Šis raksts jums parādīs, kā t

Kā iestatīt Node.js pastāvīgās lietojumprogrammas Ubuntu 16.04

Kā iestatīt Node.js pastāvīgās lietojumprogrammas Ubuntu 16.04

Node.js lietojumprogrammas ir populāras to mērogošanas spējas dēļ. Vairāku vienlaicīgu procesu palaišana vairākos serveros nodrošina mazāku latentumu un ilgāku darbības laiku

Kā instalēt SuiteCRM operētājsistēmā Ubuntu 16.04

Kā instalēt SuiteCRM operētājsistēmā Ubuntu 16.04

SuiteCRM ir bezmaksas atvērtā koda alternatīva populārajai klientu attiecību pārvaldības (CRM) sistēmai SugarCRM. Tas kļuva populārs, kad SugarCRM nolēma

Kā instalēt Open Eshop operētājsistēmā Ubuntu 16.04

Kā instalēt Open Eshop operētājsistēmā Ubuntu 16.04

Open Eshop ir bezmaksas atvērtā koda e-komercijas programmatūra digitālo preču, piemēram, MP3, e-grāmatu, filmu, programmatūras un daudz ko citu, pārdošanai. Šajā apmācībā mēs vēlēsimies

Instalējiet NixOS vietnē Vultr

Instalējiet NixOS vietnē Vultr

NixOS ir tīri funkcionāls Linux izplatīšana. To var atrast vietnē nixos.org. Galvenais NixOS izmantošanas iemesls ir tas, ka tas ir pilnībā deklaratīvs, kas padara

Instalējiet Nginx + PHP FPM + Caching + MySQL Ubuntu 12.04

Instalējiet Nginx + PHP FPM + Caching + MySQL Ubuntu 12.04

Iespējams, daudzi cilvēki izmantos savus Vultr VPS kā tīmekļa serverus, laba izvēle būtu Nginx kā tīmekļa serveris. Šajā tēmā es aprakstīšu o

Hosts faila izmantošana vietņu pārbaudei

Hosts faila izmantošana vietņu pārbaudei

Hosts fails ir īpašs fails jūsu darbstacijas datorā, kurā tiks saglabāta IP un nosaukuma informācija. Šis fails tiek pārbaudīts pirms DNS, tādēļ, ja ievietojat a

Kā instalēt Xubuntu darbvirsmu Vultr serveros, izmantojot Ubuntu 15.10

Kā instalēt Xubuntu darbvirsmu Vultr serveros, izmantojot Ubuntu 15.10

Xubuntu ir XFCE + Ubuntu! XFCE ir viegla Ubuntu GUI/darbvirsma. Vultr serveriem ir nepieciešamas papildu atkarības, kas pēc noklusējuma nav instalētas

Iestatīšana ļauj šifrēt ar Lighttpd Ubuntu 16.04

Iestatīšana ļauj šifrēt ar Lighttpd Ubuntu 16.04

Ievads Let's Encrypt ir sertifikācijas iestāde (CA), kas izsniedz bezmaksas SSL/TLS sertifikātus. Lighttpd ir viegls tīmekļa serveris, kas darbojas uz lo

Apache optimizācija zemas klases VPS operētājsistēmā Ubuntu 14.04

Apache optimizācija zemas klases VPS operētājsistēmā Ubuntu 14.04

Apache ir ļoti viegli instalēt un inicializēt, taču tas ir aprīkots ar daudziem iepriekš instalētiem moduļiem, kā rezultātā, palaižot, var rasties veiktspējas problēmas.

Kā novērst vienlaicīgus savienojumus operētājsistēmā Linux, izmantojot IPTables

Kā novērst vienlaicīgus savienojumus operētājsistēmā Linux, izmantojot IPTables

iptables ir ugunsmūra programmatūra, ko var atrast daudzos izplatījumos, tostarp CentOS un Ubuntu. Šajā dokumentā jūs redzēsit, kā jūs varat novērst vienlaicīgumu

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk