Si të instaloni dhe konfiguroni Ruby me Rbenv, Rails, MariaDB, Nginx, SSL dhe Passenger në Ubuntu 17.04

Ruby on Rails është një kornizë e njohur në internet për Ruby që u zhvillua për të rritur produktivitetin e një programuesi. Megjithatë, marrja e gurëve të çmuar dhe varësive të ndryshme për të punuar së bashku mund të jetë e ndërlikuar ndonjëherë. Ky udhëzues do t'ju ndihmojë të krijoni një mjedis të plotë të Rails gati për prodhimin, duke përfshirë gurët e çmuar dhe vartësitë e përdorura zakonisht.

Kërkesat

  • Shembull Vultr me të paktën 512 MB RAM (preferohen 1024 MB).
  • Shembull Vultr që ekzekuton Ubuntu 17.04.

Stack i përdorur në këtë udhëzues

  • Nginx : një server i shpejtë dhe i fuqishëm në internet. (versioni 1.10.3)
  • Pasagjeri : një server aplikacioni që do të ndihmojë Nginx të shërbejë aplikacionin tuaj Ruby. (versioni 1.5.1.8)
  • Rbenv : një menaxher i versionit Ruby. (vergjet 1.1.1-2)
  • Rubin : (versioni 2.4.1)
  • MariaDB : një degë me burim të hapur të serverit MySQL (ver 10.2)
  • Certifikata SSL nga Let's Encrypt

Instalimi

Shto përdorues Sudo

Shënim : Rekomandohet shumë të mos instaloni asnjë nga këto shërbime si root, pasi mund të ekspozoheni ndaj një sulmi. Vendosja e një deployose një apppërdoruesi është një konventë e zakonshme:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Përditësoni dhe përmirësoni sistemin

Sigurohuni që po ekzekutoni të gjitha paketat më të fundit në Ubuntu VM tuaj:

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

Instaloni Build System

Për të qenë në gjendje të përpiloni Ruby duke përdorur rbenv dhe gurë të tjerë të çmuar, duhet të instalohen paketa të ndryshme. Në varësi të versionit të Ruby që ju nevojitet, disa nga paketat mund të mos nevojiten.

Përpilimi
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
Paketa për mbështetje SSL

Këto janë të nevojshme për të përpiluar disa gurë të çmuar, si pasagjerët:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Versionimi

Komuniteti Ruby po përdor Git si një SCM të zgjedhur; por ato shtesë, si Mercurial ose Subversion, mund të instalohen gjithashtu:

sudo apt-get install -y git git-core
Drejtuesit e bazës së të dhënave për MySQL / MariaDB
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

Kërkohet për disa gurë të çmuar të njohur që kanë nevojë për libs amtare XML:

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

Shtoni depo zyrtare nga Node me versionin më të fundit si depot e paracaktuara të Ubuntu priren të mbeten prapa disa versioneve kryesore:

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

Paketat Opsionale

Këto paketa nuk kërkohen që sistemi të funksionojë, por është mirë t'i keni nëse keni nevojë të përdorni disa gurë të çmuar.

Grafikët dhe Imazhet

Këto biblioteka nuk janë të nevojshme dhe mund të anashkalohen nëse nuk planifikoni të përdorni gurë të çmuar të manipulimit të imazheve; të tilla si Rmagick:

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

Drejtuesit e bazës së të dhënave për SQLite dhe PostgreSQL

Instaloni drejtuesit për SQLite ose PostgreSQL nëse keni nevojë të lidheni me baza të tjera të të dhënave ose preferoni një DB të thjeshtë, lokal:

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

Mjetet

Shërbimet që zakonisht nuk vijnë të para-instaluara në një instalim të ri të Ubuntu. Mos ngurroni të instaloni redaktuesin e tekstit të zgjedhur:

sudo apt-get install -y iotop htop nano vim

Instaloni serverin MariaDB

MariaDB është një server i fuqishëm relacional SQL, që është plotësisht i pajtueshëm me MySQL. Mënyra më e lehtë për të instaluar versionin më të fundit të MariaDB është përdorimi i depove zyrtare:

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

Ndiqni kërkesat dhe vendosni një fjalëkalim rrënjësor. Pas kësaj, verifikoni që mund të përdorni instalimin tuaj të ri:

mysql -V 

Do të shfaqë një rresht të ngjashëm me këtë:

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

Hyni në guaskën MySQL:

mysql -h localhost -u root -p 

Shënim : përdorni \qpër të dalë.


Instaloni Rbenv dhe Ruby

Rbenv

Instaloni Rbenv duke përdorur git. Kjo është metoda më e thjeshtë e instalimit dhe mundëson përditësime të lehta më vonë. Gjithashtu instaloni ruby-build, ai është përgjegjës për përpilimin e versioneve të ndryshme të Ruby:

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

Shënim : Kur duhet të përditësoni thjesht cd ~/.rbenvdhe git pull.

Bëni Rbenv dhe Ruby-build të disponueshme në guaskë. Për të siguruar që linjat e eksportit të futen në fillim.bashrcskedarit, gjë që është e rëndësishme për komandat bash jo-ndërvepruese, përdorni këto rreshta:

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

Kontrolloni nëse Rbenv dhe Ruby-build janë instaluar dhe janë të disponueshëm në shell:

rbenv install --list

Nëse rbenvnuk njihet, dilni dhe hyni përsëri në guaskë.

Krijoni një ~/.bash_profileskedar dhe drejtojeni atë në burimin e ~/.bashrcskedarit tuaj . Nëse ju duhet të ekzekutoni ndonjë komandë jo-interaktive të guaskës nga aplikacioni juaj Rails, si p.sh. konfigurimi i cron jobs nga whenevergur i çmuar, ai do të përdorë të njëjtin version të Ruby si guaska juaj interaktive. Kjo mund të ndihmojë në parandalimin e gabimeve të çuditshme. Shtoni këtë rresht në ~/.bash_profileskedar:

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

Rubin

Instaloni Ruby 2.4.1:

rbenv install 2.4.1

Shënim : Ky proces mund të zgjasë 5-15 minuta në varësi të burimeve në VM-në tuaj dhe nuk ka asnjë shirit progresi.

Bëjeni Rbenv të disponueshëm kudo.

rbenv global 2.4.1

Pasagjeri dhe Nginx

Shtoni çelësin PGP dhe mbështetjen HTTPS për 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

Shtoni depon e pasagjerëve:

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

Instaloni modulet Passenger + Nginx:

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

Vizitoni shembullin tuaj Vultr duke përdorur emrin e domenit ose IP-në e tij për t'i testuar këto në këtë pikë. Nëse ata janë duke punuar, faqja juaj do të shfaqë faqen e paracaktuar të mirëseardhjes Nginx.

Konfiguro Rails, Aplikacionin dhe Konfiguro Pasagjerin

Instaloni Bundler dhe Rails:

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

Konventa e Ubuntu/Debian është të konfiguroni aplikacionin tuaj në /var/www. Si parazgjedhje mund të shkruhet vetëm me rrënjë. Që konfigurimi të funksionojë, jepini pronësinë përdoruesit sudo deploy:

sudo chown deploy:deploy /var/www -R

Gjeneroni aplikacionin rails në /var/www/. Nëse tashmë keni një aplikacion që dëshironi të vendosni, git cloneatë këtu dhe më pas ekzekutoni bundle:

cd /var/www
rails new example --database=mysql
Konfiguro Pasagjerin që të tregojë te aplikacioni.
  1. Përgatitni Nginx.

    sudo nano /etc/nginx/nginx.conf
    
  2. Ndrysho përdoruesin në deploy.

    user deploy;
    
  3. httpseksionin e konfigurimit, duhet të ketë një linjë që i thotë Nginx të ngarkojë modulet duke përfshirë pasagjerin. Nëse mungon, mund ta shtoni menjëherë pas Virtual Host Configstitullit, por përpara sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Redakto/krijo passenger.confskedarin.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Thuaji pasagjerit të përdorë konfigurimin tonë të Rbenv. Mund të përmbajë një rresht që tregon versionin Ruby të përfshirë me Passenger, thjesht fshijeni ose komentoni atë.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Konfiguro hostin virtual për të treguar aplikacionin në /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. Rinisni Nginx.

    sudo service nginx restart
    

Në këtë pikë aplikacioni juaj është gati për t'u përdorur në modalitetin e zhvillimit. Për të kaluar në modalitetin e prodhimit, duhet të ktheheni te konfigurimi juaj Nginx dhe të ndryshoni rails_envcilësimin në production.

Para se të kaloni në mënyrë të prodhimit, ju ende do të duhet të setup bazës së të dhënave tuaj të prodhimit example_production, database.ymldhe çelës sekret. Shikoni një mjet si Capistrano ose Mina për të shpejtuar procesin e vendosjes së aplikacionit tuaj. Është një praktikë e mirë të përdorni variablat ENV me një gur të çmuar si dotenv, dhe të mos i vendosni fjalëkalimet tuaja, çelësat sekretë dhe të tilla në depon tuaj të git.

Konfiguro SSL

Ka shumë shërbime atje që ofrojnë certifikata SSL për domenin tuaj, shumë janë me pagesë dhe një çift janë falas. Konfiguro SSL-në pavarësisht se çfarë shërbimi përdorni. Let's Encrypt është shumë e lehtë dhe falas për t'u përdorur. Let's Encrypt është një organizatë jofitimprurëse e mbështetur nga shumë gjigantë të teknologjisë.

Instalimi

Ekzekutoni komandat e mëposhtme dhe ndiqni udhëzimet.

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

Nëse shkoni te shembulli juaj Vultr tani duke përdorur HTTPS, do të shihni një uebsajt të sigurt.

Rinovimi

Certifikata juaj e sapo lëshuar do të skadojë dhe do të duhet të rinovohet periodikisht. Mënyra më e lehtë për ta bërë këtë është të konfiguroni një punë cron.

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

Si hap i fundit, por opsional, rinisni VM-në tuaj dhe sigurohuni që të gjitha shërbimet të rifillojnë siç pritej.

Lëreni një koment

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë