Hvernig á að setja upp og stilla Ruby með Rbenv, Rails, MariaDB, Nginx, SSL og Passenger á Ubuntu 17.04

Ruby on Rails er vinsæl veframmi fyrir Ruby sem var þróaður til að auka framleiðni forritara. Hins vegar getur stundum verið erfitt að fá ýmsa gimsteina og ósjálfstæði til að vinna saman. Þessi handbók mun hjálpa þér að setja upp fullbúið Rails umhverfi sem er tilbúið til framleiðslu, þar á meðal algengt gimsteina og ósjálfstæði.

Kröfur

  • Vultr tilvik með að minnsta kosti 512 MB af vinnsluminni (1024 MB æskilegt).
  • Vultr tilvik sem keyrir Ubuntu 17.04.

Stafla notað í þessari handbók

  • Nginx : fljótur og öflugur vefþjónn. (útgáfa 1.10.3)
  • Passenger : appþjónn sem mun hjálpa Nginx að þjóna Ruby appinu þínu. (útgáfa 1.5.1.8)
  • Rbenv : Ruby útgáfustjóri. (ver 1.1.1-2)
  • Ruby : (útgáfa 2.4.1)
  • MariaDB : opinn uppspretta útibú MySQL netþjóns (ver 10.2)
  • SSL vottorð frá Let's Encrypt

Uppsetning

Bæta við Sudo notanda

Athugið : Það er mjög mælt með því að setja ekki upp neina af þessum þjónustum sem rót, þar sem þú gætir orðið fyrir árás. Að setja upp a deployeða appnotanda er algeng venja:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Uppfæra og uppfæra kerfi

Gakktu úr skugga um að þú sért að keyra alla nýjustu pakkana á Ubuntu VM þínum:

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

Settu upp byggingarkerfi

Til þess að geta sett saman Ruby með rbenv og öðrum gimsteinum þarf að setja upp ýmsa pakka. Það fer eftir útgáfunni af Ruby sem þú þarft, suma pakkana gæti verið óþörf.

Samantekt
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
Pakkar fyrir SSL stuðning

Þetta eru nauðsynlegar til að setja saman nokkra gimsteina, eins og farþega:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Útgáfa

Ruby samfélagið notar Git sem SCM að eigin vali; en fleiri, eins og Mercurial eða Subversion, er einnig hægt að setja upp:

sudo apt-get install -y git git-core
Gagnagrunnsrekla fyrir MySQL / MariaDB
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

Nauðsynlegt fyrir nokkra vinsæla gimsteina sem þurfa innfædd XML libs:

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

Bættu við opinberum geymslum frá Node með nýjustu útgáfunni þar sem sjálfgefnar Ubuntu geymslur hafa tilhneigingu til að vera á eftir nokkrum helstu útgáfum:

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

Valfrjálsir pakkar

Þessir pakkar eru ekki nauðsynlegir til að kerfið geti keyrt, en gott að hafa ef þú þarft að nota ákveðna gimsteina.

Gröf og myndir

Þessi bókasöfn eru ekki nauðsynleg og hægt er að sleppa þeim nema þú ætlir að nota myndvinnsluperlur; eins og Rmagick:

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

Gagnagrunnsrekla fyrir SQLite og PostgreSQL

Settu upp rekla fyrir SQLite eða PostgreSQL ef þú þarft að tengjast öðrum gagnagrunnum eða vilt frekar einfalda, staðbundna DB:

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

Verkfæri

Tól sem venjulega koma ekki fyrirfram uppsett á nýrri Ubuntu uppsetningu. Ekki hika við að setja upp textaritil að eigin vali:

sudo apt-get install -y iotop htop nano vim

Settu upp MariaDB netþjóninn

MariaDB er öflugur SQL-miðlari, sem er fullkomlega samhæfður MySQL. Auðveldasta leiðin til að setja upp nýjustu útgáfuna af MariaDB er að nota opinberar geymslur:

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

Fylgdu leiðbeiningunum og settu upp rótarlykilorð. Eftir það skaltu ganga úr skugga um að þú hafir aðgang að nýju uppsetningunni þinni:

mysql -V 

Það mun sýna línu svipað þessari:

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

Skráðu þig inn í MySQL skelina:

mysql -h localhost -u root -p 

Athugið : Notaðu \qtil að hætta.


Settu upp Rbenv og Ruby

Rbenv

Settu upp Rbenv með git. Þetta er einfaldasta uppsetningaraðferðin og hún gerir kleift að uppfæra auðveldar síðar. Settu líka upp ruby-build, það er ábyrgt fyrir því að setja saman mismunandi útgáfur af Ruby:

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

Athugið : Þegar þú þarft að uppfæra einfaldlega cd ~/.rbenvog git pull.

Gerðu Rbenv og Ruby-build aðgengilegar í skelinni. Til að tryggja að útflutningur línurnar fá bætist í upphafi á .bashrcskrá, sem er mikilvægt fyrir utan gagnvirka Bash stjórn, nota þessar línur:

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

Athugaðu hvort Rbenv og Ruby-build séu uppsett og fáanleg í skel:

rbenv install --list

Ef það rbenver ekki þekkt skaltu skrá þig út og aftur inn í skelina.

Búðu til ~/.bash_profileskrá og beindu henni að upprunaskránni þinni ~/.bashrc. Ef þú þarft að keyra einhverjar ógagnvirkar skel skipanir úr Rails appinu þínu, eins og uppsetning cron verka af whenevergemsanum, mun það nota sömu útgáfu af Ruby og gagnvirka skelin þín. Þetta getur komið í veg fyrir undarlegar villur. Bættu þessari línu við ~/.bash_profileskrána:

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

Rúbín

Settu upp Ruby 2.4.1:

rbenv install 2.4.1

Athugið : Þetta ferli getur tekið 5-15 mínútur eftir tilföngum á VM þínum og það er engin framvindustika.

Gerðu Rbenv aðgengilegt alls staðar.

rbenv global 2.4.1

Farþegi og Nginx

Bættu við PGP lyklinum og HTTPS stuðningi fyrir 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

Bættu við farþegageymslunni:

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

Settu upp Passenger + Nginx einingarnar:

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

Heimsæktu Vultr dæmið þitt með því að nota lén eða IP til að prófa þetta á þessum tímapunkti. Ef þeir eru að virka mun síðan þín sýna sjálfgefna Nginx velkomnasíðu.

Settu upp teina, appið og stilltu farþega

Settu upp Bundler og Rails:

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

Ubuntu/Debian venja er að setja upp appið þitt í /var/www. Sjálfgefið er það aðeins hægt að skrifa með rót. Til að uppsetningin virki, gefðu sudo notandanum eignarhald deploy:

sudo chown deploy:deploy /var/www -R

Búðu til rails appið í /var/www/. Ef þú ert nú þegar með app sem þú vilt nota, git cloneþá keyrir það hér og síðan bundle:

cd /var/www
rails new example --database=mysql
Stilltu farþega til að benda á appið.
  1. Undirbúningur Nginx.

    sudo nano /etc/nginx/nginx.conf
    
  2. Breyta notanda í deploy.

    user deploy;
    
  3. Í httphluta stillingarinnar ætti að vera lína sem segir Nginx að hlaða einingar þar á meðal farþega. Ef það vantar geturðu bætt því við rétt á eftir Virtual Host Configstitlinum en á undan sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Breyta/búa til passenger.confskrána.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Segðu farþega að nota Rbenv uppsetninguna okkar. Það gæti innihaldið línu sem vísar á Ruby útgáfuna sem fylgir með Passenger, eyddu því bara eða skrifaðu athugasemd.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Settu upp sýndarhýsil til að benda á appið í /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. Endurræstu Nginx.

    sudo service nginx restart
    

Á þessum tímapunkti er forritið þitt tilbúið til notkunar í þróunarham. Til að skipta yfir í framleiðsluham þarftu að fara aftur í Nginx stillingarnar þínar og breyta rails_envstillingunni í production.

Áður en þú skiptir yfir í framleiðslu háttur, enn þú þarft að setja framleiðslu gagnagrunninn example_production, database.ymlog leyndarmál lykill. Skoðaðu tól eins og Capistrano eða Mina til að flýta fyrir dreifingarferli forrita. Það er góð venja að nota ENV breytur með gimsteini eins og dotenv, og ekki binda lykilorðin þín, leynilykla og slíkt í git geymsluna þína.

Settu upp SSL

Það eru margar þjónustur þarna úti sem bjóða upp á SSL vottorð fyrir lénið þitt, margar eru greiddar og par eru ókeypis. Settu upp SSL, sama hvaða þjónustu þú notar. Let's Encrypt er mjög auðvelt og ókeypis í notkun. Let's Encrypt er sjálfseignarstofnun sem studd er af mörgum tæknirisum.

Uppsetning

Keyrðu eftirfarandi skipanir og fylgdu leiðbeiningunum.

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

Ef þú ferð í Vultr tilvikið þitt með því að nota núna HTTPSmuntu sjá örugga vefsíðu.

Endurnýjun

Nýútgefið vottorð þitt mun renna út og þarf að endurnýja það reglulega. Auðveldasta leiðin til að gera þetta er að setja upp cron starf.

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

Sem lokaskref en valfrjálst skaltu endurræsa VM þinn og ganga úr skugga um að öll þjónusta endurræsist eins og búist var við.


Settu upp Cacti á Debian Jessie

Settu upp Cacti á Debian Jessie

Inngangur Cacti er opinn vöktunar- og grafatól sem byggir að fullu á RRD gögnum. Í gegnum Cacti geturðu fylgst með næstum hvers kyns tækjum

Settu upp Lets Encrypt SSL á WordPress appi með einum smelli

Settu upp Lets Encrypt SSL á WordPress appi með einum smelli

Inngangur Lets Encrypt er vottunaryfirvaldsþjónusta sem býður upp á ókeypis TLS/SSL vottorð. Uppsetningarferlið er einfaldað af Certbot,

Hvernig á að setja upp Tekkit Classic Server á Ubuntu 16.10

Hvernig á að setja upp Tekkit Classic Server á Ubuntu 16.10

Að nota annað kerfi? Hvað er Tekkit Classic? Tekkit Classic er modpack fyrir leikinn sem allir þekkja og elska; Minecraft. Það inniheldur eitthvað af ver

Settu upp iRedMail á Debian Wheezy

Settu upp iRedMail á Debian Wheezy

Að nota annað kerfi? Þessi kennsla mun sýna þér hvernig á að setja upp hópbúnaðinn iRedMail á nýrri uppsetningu á Debian Wheezy. Þú ættir að nota þjóna

Að búa til Jekyll blogg á Ubuntu 16.04

Að búa til Jekyll blogg á Ubuntu 16.04

Að nota annað kerfi? Jekyll er frábær valkostur við WordPress til að blogga eða deila efni. Það krefst enga gagnagrunna og það er mjög auðvelt i

Hvernig á að setja upp og stilla PHP 7.0 eða PHP 7.1 á Ubuntu 16.04

Hvernig á að setja upp og stilla PHP 7.0 eða PHP 7.1 á Ubuntu 16.04

PHP og tengdir pakkar eru algengustu íhlutirnir þegar vefþjónn er notaður. Í þessari grein munum við læra hvernig á að setja upp PHP 7.0 eða PHP 7.1 o

Hvernig á að setja upp Squid Proxy á CentOS

Hvernig á að setja upp Squid Proxy á CentOS

Smokkfiskur er vinsælt, ókeypis Linux forrit sem gerir þér kleift að búa til framsendingarforrit á vefnum. Í þessari handbók muntu sjá hvernig á að setja upp Squid á CentOS til að snúa þér

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Inngangur Lighttpd er gaffal af Apache sem miðar að því að vera miklu minna auðlindafrekt. Hann er léttur, þess vegna heitir hann, og er frekar einfaldur í notkun. Uppsetning

Þrjú ókeypis stjórnborð miðlara (fljót uppsetning)

Þrjú ókeypis stjórnborð miðlara (fljót uppsetning)

1. Virtualmin/Webmin Virtualmin er öflugt og sveigjanlegt stjórnborð fyrir vefhýsingu fyrir Linux og UNIX kerfi byggt á hinum vel þekkta Open Source vefgrunni

Setja upp Yii forrit á Ubuntu 14.04

Setja upp Yii forrit á Ubuntu 14.04

Yii er PHP ramma sem gerir þér kleift að þróa forrit hraðar og auðveldlega. Uppsetning Yii á Ubuntu er einföld, þar sem þú munt læra nákvæmlega

Notkun Skjár á Ubuntu 14.04

Notkun Skjár á Ubuntu 14.04

Skjár er forrit sem leyfir margs konar notkun flugstöðvarlota innan eins glugga. Þetta gerir þér kleift að líkja eftir mörgum flugstöðvum gluggum þar sem það ma

Settu upp þinn eigin DNS netþjón á Debian/Ubuntu

Settu upp þinn eigin DNS netþjón á Debian/Ubuntu

Þessi kennsla útskýrir hvernig á að setja upp DNS netþjón með Bind9 á Debian eða Ubuntu. Í gegnum greinina skaltu skipta út-léninu þínu.com í samræmi við það. Á þ

Notkun Logrotate til að stjórna annálaskrám

Notkun Logrotate til að stjórna annálaskrám

Inngangur Logrotate er Linux tól sem einfaldar stjórnun annálaskráa. Það keyrir venjulega einu sinni á dag í gegnum cron-vinnu og stjórnar annálagrunni

Stilla Static Networking og IPv6 á CentOS 7

Stilla Static Networking og IPv6 á CentOS 7

VULTR hefur nýlega gert breytingar á enda þeirra og allt ætti nú að virka vel út úr kassanum með NetworkManager virkt. Ef þú vilt slökkva á

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Icinga2 er öflugt eftirlitskerfi og þegar það er notað í aðal-viðskiptavinamódel getur það komið í stað þörf fyrir NRPE-undirstaða vöktunareftirlit. Húsbóndinn

Settu upp Red5 Media Server á Ubuntu 16.04

Settu upp Red5 Media Server á Ubuntu 16.04

Að nota annað kerfi? Red5 er opinn uppspretta miðlara útfærður í Java sem gerir þér kleift að keyra Flash fjölnotendaforrit eins og straumspilun í beinni

Settu saman og settu upp Nginx með PageSpeed ​​Module á Debian 8

Settu saman og settu upp Nginx með PageSpeed ​​Module á Debian 8

Í þessari grein munum við sjá hvernig á að setja saman og setja upp Nginx mainline frá opinberum heimildum Nginx með PageSpeed ​​einingunni, sem gerir þér kleift að

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Að nota annað kerfi? Apache Cassandra er ókeypis og opinn uppspretta NoSQL gagnagrunnsstjórnunarkerfi sem er hannað til að veita sveigjanleika, háan

Hvernig á að setja upp Vanilla Forum á Ubuntu 16.04

Hvernig á að setja upp Vanilla Forum á Ubuntu 16.04

Að nota annað kerfi? Vanilla forum er opinn uppspretta spjallforrit skrifað í PHP. Það er fullkomlega sérhannaðar, auðvelt í notkun og styður utanaðkomandi

Hvernig á að setja upp Gitea á Debian 9

Hvernig á að setja upp Gitea á Debian 9

Að nota annað kerfi? Gitea er annað opinn uppspretta, sjálfhýst útgáfustýringarkerfi knúið af Git. Gitea er skrifað á Golang og er

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.

DDOS árásir: Stutt yfirlit

DDOS árásir: Stutt yfirlit

Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.

Þróun gagnageymslu – Infographic

Þróun gagnageymslu – Infographic

Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.

Virkni Big Data Reference Architecture Layers

Virkni Big Data Reference Architecture Layers

Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira