Ruby installimine ja konfigureerimine Rbenvi, Railsi, MariaDB, Nginxi, SSL-i ja Passengeriga Ubuntu 17.04-s

Ruby on Rails on Ruby populaarne veebiraamistik, mis töötati välja programmeerija tootlikkuse suurendamiseks. Erinevate kalliskivide ja sõltuvuste koos töötamine võib aga mõnikord osutuda keeruliseks. See juhend aitab teil luua täieliku tootmisvalmis Railsi keskkonna, mis hõlmab sageli kasutatavaid kalliskive ja sõltuvusi.

Nõuded

  • Vultri eksemplar vähemalt 512 MB muutmäluga (eelistatult 1024 MB).
  • Vultr eksemplar, milles töötab Ubuntu 17.04.

Selles juhendis kasutatud virn

  • Nginx : kiire ja võimas veebiserver. (versioon 1.10.3)
  • Reisija : rakenduse server, mis aitab Nginxil teie Ruby rakendust teenindada. (versioon 1.5.1.8)
  • Rbenv : Ruby versioonihaldur. (versioonid 1.1.1–2)
  • Ruby : (versioon 2.4.1)
  • MariaDB : MySQL-serveri avatud lähtekoodiga haru (versioon 10.2)
  • SSL- sertifikaat ettevõttelt Let's Encrypt

Paigaldamine

Lisage Sudo kasutaja

Märkus . Soovitatav on mitte installida ühtegi neist teenustest administraatorina, kuna võite end rünnata. Kasutaja deployvõi appkasutaja seadistamine on tavaline tava:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Süsteemi värskendamine ja täiendamine

Veenduge, et kasutaksite oma Ubuntu VM-is kõiki uusimaid pakette:

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

Installige ehitussüsteem

Ruby kompileerimiseks rbenv ja muude kalliskivide abil on vaja installida erinevaid pakette. Olenevalt Ruby versioonist, mida vajate, ei pruugi mõned paketid olla vajalikud.

Koostamine
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-i toe paketid

Need on vajalikud mitme kalliskivi, näiteks reisija, koostamiseks:

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

Ruby kogukond kasutab Giti valitud SCM-ina; kuid installida saab ka täiendavaid, nagu Mercurial või Subversion:

sudo apt-get install -y git git-core
Andmebaasi draiverid MySQL / MariaDB jaoks
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

Nõutav mitme populaarse pärli jaoks, mis vajavad natiivseid XML-i libise:

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

Lisage Node'i ametlikud hoidlad uusima versiooniga, kuna Ubuntu vaikehoidlad kipuvad mõnest suuremast versioonist maha jääma:

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

Valikulised paketid

Need paketid ei ole süsteemi töötamiseks vajalikud, kuid need on head, kui teil on vaja kasutada teatud kalliskive.

Graafikud ja pildid

Need teegid pole vajalikud ja neid saab vahele jätta, välja arvatud juhul, kui kavatsete kasutada pilditöötluse kalliskive; nagu Rmagick:

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

Andmebaasi draiverid SQLite ja PostgreSQL jaoks

Installige SQLite'i või PostgreSQL-i draiverid, kui peate looma ühenduse teiste andmebaasidega või eelistate lihtsat kohalikku andmebaasi:

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

Tööriistad

Utiliidid, mida tavaliselt värske Ubuntu installiga eelinstallitud ei ole. Installige julgelt oma valitud tekstiredaktor:

sudo apt-get install -y iotop htop nano vim

Installige MariaDB server

MariaDB on võimas relatsiooniline SQL-server, mis ühildub täielikult MySQL-iga. Lihtsaim viis MariaDB uusima versiooni installimiseks on kasutada ametlikke hoidlaid:

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

Järgige juhiseid ja seadistage juurparool. Pärast seda veenduge, et pääsete juurde oma värskele installile:

mysql -V 

See kuvab sarnase rea:

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

Logige sisse MySQL-i kesta:

mysql -h localhost -u root -p 

Märkus : kasutage \qväljumiseks.


Installige Rbenv ja Ruby

Rbenv

Installige Rbenv giti abil. See on lihtsaim installimeetod ja see võimaldab hiljem hõlpsalt värskendada. Installige ka ruby-build, vastutab Ruby erinevate versioonide tegeliku koostamise eest:

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

Märkus . Kui teil on vaja värskendada lihtsalt cd ~/.rbenvja git pull.

Tee Rbenv ja Ruby-build kestas kättesaadavaks. Selleks, et tagada ekspordi read saada sisestatud alguses on .bashrcfail, mis on oluline mitte-interaktiivne bash käske, kasutada neid ridu:

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

Kontrollige, kas Rbenv ja Ruby-build on installitud ja kas need on shellis saadaval:

rbenv install --list

Kui rbenvseda ei tuvastata, logige välja ja logige tagasi kesta.

Looge ~/.bash_profilefail ja suunake see ~/.bashrcfaili allikale . Kui teil on vaja oma Rails'i rakendusest käivitada mitteinteraktiivseid kestakäske, näiteks gem'i seadistatud cron töökohti whenever, kasutab see sama Ruby versiooni kui teie interaktiivne kest. See võib aidata vältida kummalisi vigu. Lisa ~/.bash_profilefailile see rida :

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

Rubiin

Installige Ruby 2.4.1:

rbenv install 2.4.1

Märkus . See protsess võib sõltuvalt teie VM-i ressurssidest võtta aega 5–15 minutit ja edenemisriba pole.

Tehke Rbenv kõikjal kättesaadavaks.

rbenv global 2.4.1

Reisija ja Nginx

Lisage apt jaoks PGP-võti ja HTTPS-i tugi:

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

Lisage reisijate hoidla:

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

Installige Passenger + Nginxi moodulid:

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

Külastage oma Vultri eksemplari, kasutades selle domeeninime või IP-d, et neid praegu testida. Kui need töötavad, kuvatakse teie lehel Nginxi vaiketervitusleht.

Setup Rails, App ja Configure Passenger

Paigaldage komplekt ja rööpad:

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

Ubuntu/Debiani tava on seadistada oma rakendus asukohas /var/www. Vaikimisi saab seda kirjutada ainult root. Seadistuse toimimiseks andke omandiõigus sudo kasutajale deploy:

sudo chown deploy:deploy /var/www -R

Looge rööbaste rakendus asukohas /var/www/. Kui teil on juba rakendus, mida soovite juurutada, git clonesiis see siin ja seejärel käivitage bundle:

cd /var/www
rails new example --database=mysql
Seadistage reisija rakendusele osutama.
  1. Nginxi ettevalmistamine.

    sudo nano /etc/nginx/nginx.conf
    
  2. Muutke kasutajaks deploy.

    user deploy;
    
  3. Kui httposa config, seal peaks olema rida, mis ütleb nginx koormusele moodulid sealhulgas reisijate. Kui see puudub, saate selle lisada kohe pärast Virtual Host Configspealkirja, kuid enne sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Redigeeri/loo passenger.conffaili.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Öelge Reisijale, et ta kasutaks meie Rbenvi seadistust. See võib sisaldada rida, mis osutab Passengeriga kaasas olevale Ruby versioonile, lihtsalt kustutage või kommenteerige see.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Seadistage virtuaalne host, et osutada rakendusele /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. Taaskäivitage Nginx.

    sudo service nginx restart
    

Sel hetkel on teie rakendus arendusrežiimis kasutamiseks valmis. Tootmisrežiimile lülitumiseks peate minema tagasi oma Nginxi konfiguratsiooni ja muutma rails_envseadeks production.

Enne kui minna tootmise ¾ sa ikka pead setup oma tootmise andmebaasi example_production, database.ymlja salajane võti. Rakenduse juurutamise kiirendamiseks vaadake tööriistu, nagu Capistrano või Mina. Hea tava on kasutada ENV muutujaid koos kalliskiviga nagu dotenv, ja ärge sisestage oma paroole, salavõtmeid ja muud oma git-hoidlasse.

SSL-i seadistamine

Seal on mitu teenust, mis pakuvad teie domeeni jaoks SSL-sertifikaate, paljud neist on tasulised ja paar tasuta. Seadistage SSL olenemata sellest, millist teenust te kasutate. Let's Encrypt on väga lihtne ja tasuta kasutada. Let's Encrypt on mittetulundusühing, mida toetavad paljud tehnoloogiahiiglased.

Paigaldamine

Käivitage järgmised käsud ja järgige juhiseid.

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

Kui lähete oma Vultri eksemplari nüüd kasutades HTTPS, näete turvalist veebisaiti.

Uuendamine

Teie äsja väljastatud sertifikaat aegub ja seda tuleb perioodiliselt uuendada. Lihtsaim viis seda teha on cron töö seadistamine.

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

Viimase, kuid valikulise sammuna taaskäivitage oma VM ja veenduge, et kõik teenused taaskäivituvad ootuspäraselt.


Seadistage Cacti Debian Jessies

Seadistage Cacti Debian Jessies

Sissejuhatus Cacti on avatud lähtekoodiga seire- ja graafikutööriist, mis põhineb täielikult RRD andmetel. Cacti kaudu saate jälgida peaaegu igat tüüpi seadmeid

Installige Lets Encrypt SSL ühe klõpsuga WordPressi rakendusse

Installige Lets Encrypt SSL ühe klõpsuga WordPressi rakendusse

Sissejuhatus Lets Encrypt on sertifikaatide väljastamise teenus, mis pakub tasuta TLS/SSL-sertifikaate. Paigaldusprotsessi lihtsustab Certbot,

Tekkiti klassikalise serveri seadistamine Ubuntu 16.10-s

Tekkiti klassikalise serveri seadistamine Ubuntu 16.10-s

Kas kasutate teistsugust süsteemi? Mis on Tekkit Classic? Tekkit Classic on modifikatsioonipakett mängule, mida kõik teavad ja armastavad; Minecraft. See sisaldab mõningaid ver

Seadistage iRedMail Debian Wheezys

Seadistage iRedMail Debian Wheezys

Kas kasutate teistsugust süsteemi? See õpetus näitab teile, kuidas installida grupitöö iRedMail Debian Wheezy värskele installile. Peaksite kasutama servi

Jekylli ajaveebi loomine Ubuntus 16.04

Jekylli ajaveebi loomine Ubuntus 16.04

Kas kasutate teistsugust süsteemi? Jekyll on suurepärane alternatiiv WordPressile ajaveebi pidamiseks või sisu jagamiseks. See ei nõua andmebaase ja see on väga lihtne

Järelevalveta versiooniuuenduste seadistamine Debian 9-s (venitamine)

Järelevalveta versiooniuuenduste seadistamine Debian 9-s (venitamine)

Kas kasutate teistsugust süsteemi? Kui ostate Debiani serveri, peaksid teil alati olema uusimad turvapaigad ja värskendused, olenemata sellest, kas magate või mitte

PHP 7.0 või PHP 7.1 installimine ja konfigureerimine Ubuntu 16.04-s

PHP 7.0 või PHP 7.1 installimine ja konfigureerimine Ubuntu 16.04-s

PHP ja sellega seotud paketid on veebiserveri juurutamisel kõige sagedamini kasutatavad komponendid. Selles artiklis õpime, kuidas seadistada PHP 7.0 või PHP 7.1 o

Kuidas installida CentOS-i Squid Proxy

Kuidas installida CentOS-i Squid Proxy

Squid on populaarne tasuta Linuxi programm, mis võimaldab teil luua edastamise veebipuhverserveri. Selles juhendis näete, kuidas installida Squid CentOS-i, et teid pöörata

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Sissejuhatus Lighttpd on Apache'i hark, mille eesmärk on olla palju vähem ressursimahukas. See on kerge, sellest ka oma nimi, ja seda on üsna lihtne kasutada. Installin

Kolm tasuta serveri juhtpaneeli (kiire installimine)

Kolm tasuta serveri juhtpaneeli (kiire installimine)

1. Virtualmin/Webmin Virtualmin on võimas ja paindlik veebimajutuse juhtpaneel Linuxi ja UNIX süsteemidele, mis põhineb tuntud avatud lähtekoodiga veebibaasil

Yii rakenduse seadistamine Ubuntu 14.04-s

Yii rakenduse seadistamine Ubuntu 14.04-s

Yii on PHP raamistik, mis võimaldab teil rakendusi kiiremini ja lihtsamalt arendada. Yii installimine Ubuntule on lihtne, nagu saate täpselt teada

Ekraani kasutamine Ubuntu 14.04-s

Ekraani kasutamine Ubuntu 14.04-s

Ekraan on rakendus, mis võimaldab ühes aknas mitut terminaliseanssi kasutada. See võimaldab simuleerida mitut terminali akent, kus see ma

Seadistage Debianis/Ubuntus oma DNS-server

Seadistage Debianis/Ubuntus oma DNS-server

See õpetus selgitab, kuidas seadistada DNS-serverit Bind9 abil Debianis või Ubuntus. Asendage kogu artikli vältel oma-domeen-nimi.com vastavalt. Kell th

Logrotate kasutamine logifailide haldamiseks

Logrotate kasutamine logifailide haldamiseks

Sissejuhatus Logrotate on Linuxi utiliit, mis lihtsustab logifailide haldamist. Tavaliselt töötab see kord päevas cron-töö kaudu ja haldab logibaasi

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

VULTR on hiljuti teinud nende osas muudatusi ja kõik peaks nüüd töötama hästi, kui NetworkManager on lubatud. Kui soovite keelata

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 on võimas seiresüsteem ja kui seda kasutatakse põhikliendi mudelis, võib see asendada vajaduse NRPE-põhiste seirekontrollide järele. Meister-klient

Seadistage Red5 Media Server versioonis Ubuntu 16.04

Seadistage Red5 Media Server versioonis Ubuntu 16.04

Kas kasutate teistsugust süsteemi? Red5 on Java-s realiseeritud avatud lähtekoodiga meediumiserver, mis võimaldab käivitada mitme kasutajaga Flashi rakendusi, näiteks otseülekandeid.

Kompileerige ja installige Nginx mooduliga PageSpeed ​​Debian 8

Kompileerige ja installige Nginx mooduliga PageSpeed ​​Debian 8

Selles artiklis näeme, kuidas kompileerida ja installida Nginxi põhiliini ametlikest Nginxi allikatest mooduliga PageSpeed, mis võimaldab teil

Apache Cassandra 3.11.x installimine Ubuntu 16.04 LTS-i

Apache Cassandra 3.11.x installimine Ubuntu 16.04 LTS-i

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit