Kaip įdiegti ir konfigūruoti „Ruby“ naudojant „Rbenv“, „Rails“, „MariaDB“, „Nginx“, SSL ir „Passenger“ Ubuntu 17.04

„Ruby on Rails“ yra populiari „Ruby“ žiniatinklio sistema, sukurta siekiant padidinti programuotojo produktyvumą. Tačiau kartais gali būti sudėtinga priversti įvairius brangakmenius ir priklausomybes veikti kartu. Šis vadovas padės sukurti visiškai gamybai paruoštą Rails aplinką, įskaitant dažniausiai naudojamus brangakmenius ir priklausomybes.

Reikalavimai

  • „Vultr“ egzempliorius su mažiausiai 512 MB RAM (pageidautina 1024 MB).
  • Vultr egzempliorius, kuriame veikia Ubuntu 17.04.

Šiame vadove naudojamas krūvas

  • Nginx : greitas ir galingas žiniatinklio serveris. (1.10.3 versija)
  • Keleivis : programos serveris, kuris padės „Nginx“ aptarnauti jūsų „Ruby“ programą. (1.5.1.8 versija)
  • Rbenv : „Ruby“ versijos tvarkyklė. (1.1.1–2 versija)
  • Rubinas : (2.4.1 versija)
  • MariaDB : atvirojo kodo MySQL serverio šaka (10.2 versija)
  • SSL sertifikatas iš Let's Encrypt

Montavimas

Pridėti „Sudo“ naudotoją

Pastaba : labai rekomenduojama neįdiegti nė vienos iš šių paslaugų kaip root, nes galite susidurti su ataka. Įsteigti deployar appvartotojas yra bendras susitarimas:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Atnaujinkite ir atnaujinkite sistemą

Įsitikinkite, kad Ubuntu VM naudojate visus naujausius paketus:

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

Įdiekite Build System

Kad būtų galima kompiliuoti Ruby naudojant rbenv ir kitus brangakmenius, reikia įdiegti įvairius paketus. Priklausomai nuo jums reikalingos Ruby versijos, kai kurių paketų gali ir neprireikti.

Kompiliavimas
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 palaikymo paketai

Tai būtini norint sudaryti keletą brangakmenių, tokių kaip keleivis:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Versijų kūrimas

Ruby bendruomenė naudoja Git kaip pasirinktą SCM; tačiau galima įdiegti ir papildomų, pvz., Mercurial ar Subversion:

sudo apt-get install -y git git-core
„MySQL“ / „MariaDB“ duomenų bazės tvarkyklės
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

Reikalingas keliems populiariems brangakmeniams, kuriems reikia vietinių XML libsų:

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

Pridėkite oficialias saugyklas iš Node su naujausia versija, nes numatytosios Ubuntu saugyklos paprastai atsilieka nuo kelių pagrindinių versijų:

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

Neprivalomi paketai

Šie paketai nėra būtini, kad sistema veiktų, tačiau juos gerai turėti, jei reikia naudoti tam tikrus brangakmenius.

Grafikai ir vaizdai

Šios bibliotekos nėra būtinos ir gali būti praleistos, nebent planuojate naudoti vaizdo manipuliavimo brangakmenius; pvz Rmagick:

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

SQLite ir PostgreSQL duomenų bazių tvarkyklės

Įdiekite SQLite arba PostgreSQL tvarkykles, jei reikia prisijungti prie kitų duomenų bazių arba pageidaujate paprastos vietinės DB:

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

Įrankiai

Priemonės, kurios paprastai nėra iš anksto įdiegtos naujame „Ubuntu“ diegime. Nedvejodami įdiekite pasirinktą teksto rengyklę:

sudo apt-get install -y iotop htop nano vim

Įdiekite MariaDB serverį

MariaDB yra galingas reliacinis SQL serveris, visiškai suderinamas su MySQL. Lengviausias būdas įdiegti naujausią MariaDB versiją yra naudoti oficialias saugyklas:

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

Vykdykite nurodymus ir nustatykite root slaptažodį. Po to patikrinkite, ar galite pasiekti naują diegimą:

mysql -V 

Bus rodoma eilutė, panaši į šią:

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

Prisijunkite prie MySQL apvalkalo:

mysql -h localhost -u root -p 

Pastaba : naudokite \qnorėdami išeiti.


Įdiekite „Rbenv“ ir „Ruby“.

Rbenv

Įdiekite Rbenv naudodami git. Tai yra paprasčiausias diegimo būdas ir leidžia lengvai atnaujinti vėliau. Taip pat įdiekite ruby-build, ji yra atsakinga už faktinį skirtingų Ruby versijų sudarymą:

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

Pastaba : kai reikia atnaujinti paprasčiausiai cd ~/.rbenvir git pull.

Padarykite „Rbenv“ ir „Ruby-build“ pasiekiamus apvalkale. Siekiant užtikrinti, kad eksporto linijos gauti įdėta pradžioje.bashrcfailo, kuris yra svarbus ne interaktyvių bash komandų, naudokite šias eilutes:

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

Patikrinkite, ar „Rbenv“ ir „Ruby-build“ yra įdiegti ir ar yra apvalkalo:

rbenv install --list

Jei rbenvneatpažįstamas, atsijunkite ir vėl prisijunkite prie apvalkalo.

Sukurkite ~/.bash_profilefailą ir nukreipkite jį į ~/.bashrcfailo šaltinį . Jei jums reikia paleisti bet kokias neinteraktyvias apvalkalo komandas iš „Rails“ programos, pvz., „Cron“ užduočių sąranką naudojant „ whenevergem“, ji naudos tą pačią „Ruby“ versiją kaip ir jūsų interaktyvusis apvalkalas. Tai gali padėti išvengti keistų klaidų. Pridėkite šią eilutę prie ~/.bash_profilefailo:

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

Rubinas

Įdiekite Ruby 2.4.1:

rbenv install 2.4.1

Pastaba : šis procesas gali užtrukti 5–15 minučių, atsižvelgiant į jūsų VM išteklius, o eigos juostos nėra.

Padarykite „Rbenv“ prieinamą visur.

rbenv global 2.4.1

Keleivis ir Nginx

Pridėkite PGP raktą ir HTTPS palaikymą 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

Pridėkite keleivių saugyklą:

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

Įdiekite „Passenger + Nginx“ modulius:

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

Apsilankykite savo „Vultr“ egzemplioriuje naudodami jo domeno pavadinimą arba IP, kad patikrintumėte juos šiuo metu. Jei jie veikia, jūsų puslapyje bus rodomas numatytasis „Nginx“ pasveikinimo puslapis.

Nustatykite bėgius, programą ir konfigūruokite keleivį

Įdiekite Bundler ir bėgius:

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

„Ubuntu“ / „Debian“ susitarimas yra nustatyti programą /var/www. Pagal numatytuosius nustatymus jį rašo tik root. Kad sąranka veiktų, suteikite nuosavybės teisę sudo vartotojui deploy:

sudo chown deploy:deploy /var/www -R

Sukurkite bėgių programą /var/www/. Jei jau turite programą, kurią norite įdiegti, git clonepaleiskite ją čia ir paleiskite bundle:

cd /var/www
rails new example --database=mysql
Sukonfigūruokite „Passenger“, kad nukreiptų į programą.
  1. Paruoškite Nginx.

    sudo nano /etc/nginx/nginx.conf
    
  2. Pakeiskite vartotoją į deploy.

    user deploy;
    
  3. Į httpiš config skyriuje, ten turėtų būti liniją, pasakoja Nginx įkelti moduliai įskaitant keleivių. Jei jo trūksta, galite pridėti jį iškart po Virtual Host Configspavadinimo, bet prieš sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Redaguoti / sukurti passenger.conffailą.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Pasakykite keleiviui, kad jis naudotų mūsų Rbenv sąranką. Jame gali būti eilutė, nukreipianti į „Ruby“ versiją, įtrauktą į „Passenger“, tiesiog ištrinkite arba pakomentuokite.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Nustatykite virtualųjį pagrindinį kompiuterį, kad nukreiptumėte į programą, esančią /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. Iš naujo paleiskite Nginx.

    sudo service nginx restart
    

Šiuo metu jūsų programa yra paruošta naudoti kūrimo režimu. Norėdami perjungti į gamybos režimą, turite grįžti į „Nginx“ konfigūraciją ir pakeisti rails_envnustatymą į production.

Prieš pereiti prie gamybos režimu, jūs vis tiek reikės sukonfigūruoti savo gamybos bazę example_production, database.ymlir slaptą raktą. Išbandykite įrankį, pvz., „Capistrano“ ar „Mina“, kad pagreitintumėte programos diegimo procesą. Gera praktika yra naudoti ENV kintamuosius su brangakmeniu, pvz. dotenv, , ir neįtraukti slaptažodžių, slaptųjų raktų ir pan. į savo git saugyklą.

Nustatykite SSL

Yra keletas paslaugų, siūlančių jūsų domeno SSL sertifikatus, daugelis yra mokami, o keletas yra nemokami. Nustatykite SSL, nesvarbu, kokia paslauga naudojatės. Let's Encrypt yra labai paprasta ir nemokama naudoti. „Let's Encrypt“ yra ne pelno siekianti organizacija, kurią remia daugelis technologijų gigantų.

Montavimas

Vykdykite šias komandas ir vykdykite nurodymus.

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

Jei dabar eisite į savo Vultr egzempliorių naudodami HTTPS, pamatysite saugią svetainę.

Atnaujinimas

Jūsų naujai išduotas sertifikatas baigs galioti ir jį reikės periodiškai atnaujinti. Lengviausias būdas tai padaryti yra nustatyti cron darbą.

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

Paskutinis, bet neprivalomas veiksmas – iš naujo paleiskite VM ir įsitikinkite, kad visos paslaugos paleidžiamos iš naujo, kaip tikėtasi.


Kaip nustatyti neprižiūrimus atnaujinimus Debian 9 (Stretch)

Kaip nustatyti neprižiūrimus atnaujinimus Debian 9 (Stretch)

Naudojate kitą sistemą? Jei perkate Debian serverį, visada turėtumėte turėti naujausius saugos pataisymus ir naujinimus, nesvarbu, ar miegate, ar ne

Kaip įdiegti ir konfigūruoti PHP 7.0 arba PHP 7.1 Ubuntu 16.04

Kaip įdiegti ir konfigūruoti PHP 7.0 arba PHP 7.1 Ubuntu 16.04

PHP ir susiję paketai yra dažniausiai naudojami komponentai diegiant žiniatinklio serverį. Šiame straipsnyje sužinosime, kaip nustatyti PHP 7.0 arba PHP 7.1 o

Nustatykite savo DNS serverį Debian / Ubuntu

Nustatykite savo DNS serverį Debian / Ubuntu

Šiame vadove paaiškinama, kaip nustatyti DNS serverį naudojant Bind9 sistemoje Debian arba Ubuntu. Visame straipsnyje atitinkamai pakeiskite savo-domeno-vardas.com. Prie th

Nustatykite „Red5 Media Server“ Ubuntu 16.04

Nustatykite „Red5 Media Server“ Ubuntu 16.04

Naudojate kitą sistemą? „Red5“ yra atvirojo kodo medijos serveris, įdiegtas „Java“, leidžiantis paleisti „Flash“ kelių vartotojų programas, tokias kaip tiesioginis srautas.

Sukompiliuokite ir įdiekite „Nginx“ naudodami „PageSpeed“ modulį „Debian 8“.

Sukompiliuokite ir įdiekite „Nginx“ naudodami „PageSpeed“ modulį „Debian 8“.

Šiame straipsnyje pamatysime, kaip sukompiliuoti ir įdiegti pagrindinę Nginx liniją iš oficialių Nginx šaltinių naudojant PageSpeed ​​modulį, kuris leidžia

Kaip įdiegti „Vanilla Forum“ Ubuntu 16.04

Kaip įdiegti „Vanilla Forum“ Ubuntu 16.04

Naudojate kitą sistemą? Vanilla forumas yra atvirojo kodo forumo programa, parašyta PHP. Tai visiškai pritaikoma, paprasta naudoti ir palaiko išorinę

Kaip įdiegti „Kanboard“ Ubuntu 18.04 LTS

Kaip įdiegti „Kanboard“ Ubuntu 18.04 LTS

Naudojate kitą sistemą? Įvadas Kanboard yra nemokama atvirojo kodo projektų valdymo programinė įranga, skirta palengvinti ir vizualizuoti

Kaip įdiegti „Kanboard“ „Debian 9“.

Kaip įdiegti „Kanboard“ „Debian 9“.

Naudojate kitą sistemą? Įvadas Kanboard yra nemokama atvirojo kodo projektų valdymo programinė įranga, skirta palengvinti ir vizualizuoti

Kaip įdiegti Gitea Debian 9

Kaip įdiegti Gitea Debian 9

Naudojate kitą sistemą? Gitea yra alternatyvi atvirojo kodo, savarankiškai priglobta versijų valdymo sistema, kurią maitina Git. Gitea parašyta golangu ir yra

Kaip įdiegti „Gitea“ Ubuntu 18.04

Kaip įdiegti „Gitea“ Ubuntu 18.04

Naudojate kitą sistemą? Gitea yra alternatyvi atvirojo kodo, savarankiškai priglobta versijų valdymo sistema, kurią maitina git. Gitea parašyta golangu ir yra

Įdiekite „Lynis“ „Debian 8“.

Įdiekite „Lynis“ „Debian 8“.

Įvadas Lynis yra nemokama atvirojo kodo sistemos audito priemonė, kurią naudoja daugelis sistemų administratorių, kad patikrintų vientisumą ir sustiprintų savo sistemas. aš

Kaip įdiegti Thelia 2.3 Debian 9

Kaip įdiegti Thelia 2.3 Debian 9

Naudojate kitą sistemą? Thelia yra atvirojo kodo įrankis, skirtas kurti el. verslo svetaines ir valdyti PHP parašytą internetinį turinį. Thelia šaltinio kodas i

Kaip įdiegti „Microweber“ „CentOS 7“.

Kaip įdiegti „Microweber“ „CentOS 7“.

Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys

„Microweber“ diegimas „Ubuntu 16.04“.

„Microweber“ diegimas „Ubuntu 16.04“.

Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys

Kaip įdiegti dotCMS Ubuntu 16.04

Kaip įdiegti dotCMS Ubuntu 16.04

Naudojate kitą sistemą? DotCMS yra atvirojo kodo, įmonės lygio turinio valdymo sistema, parašyta Java. Jame yra beveik visos reikalingos funkcijos t

Kaip įdiegti „BigTree CMS“ Fedora 26 LAMP VPS

Kaip įdiegti „BigTree CMS“ Fedora 26 LAMP VPS

Naudojate kitą sistemą? BigTree CMS 4.2 yra greita ir lengva, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), turinti platų

„Minecraft“ serverių tinklo sukūrimas naudojant „BungeeCord“ „Debian 8“, „Debian 9“ arba „CentOS 7“

„Minecraft“ serverių tinklo sukūrimas naudojant „BungeeCord“ „Debian 8“, „Debian 9“ arba „CentOS 7“

Ko jums reikia Vultr VPS su mažiausiai 1 GB RAM. SSH prieiga (su root / administratoriaus teisėmis). 1 veiksmas: „BungeeCord“ diegimas Pirmiausia

„Docker CE“ diegimas „Ubuntu 16.04“.

„Docker CE“ diegimas „Ubuntu 16.04“.

Naudojate kitą sistemą? Docker yra programa, leidžianti diegti programas, kurios vykdomos kaip konteineriai. Tai buvo parašyta populiarioje Go programoje

Kaip įdiegti Golang 1.8.3 CentOS 7, Ubuntu 16.04 ir Debian 9

Kaip įdiegti Golang 1.8.3 CentOS 7, Ubuntu 16.04 ir Debian 9

Golang yra programavimo kalba, kurią sukūrė Google. Dėl savo universalumo, paprastumo ir patikimumo Golangas tapo vienu populiariausių

„Dirty Cow Exploit“ pataisymas „CentOS“.

„Dirty Cow Exploit“ pataisymas „CentOS“.

Kas yra purvina karvė (CVE-2016-5195)? „Dirty Cow“ pažeidžiamumas išnaudojamas „Linux“ apdorojant kodą. Tai leidžia neprivilegijuotam vartotojui gai

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį