Rubyn asentaminen ja määrittäminen Rbenvin, Railsin, MariaDB:n, Nginxin, SSL:n ja Passengerin avulla Ubuntu 17.04:ssä

Ruby on Rails on suosittu verkkokehys Rubylle, joka on kehitetty lisäämään ohjelmoijan tuottavuutta. Erilaisten helmien ja riippuvuuksien saaminen toimimaan yhdessä voi kuitenkin joskus olla hankalaa. Tämä opas auttaa sinua luomaan täydellisen tuotantovalmiuden Rails-ympäristön, joka sisältää yleisesti käytetyt jalokivet ja riippuvuudet.

Vaatimukset

  • Vultr-instanssi, jossa on vähintään 512 Mt RAM-muistia (1024 Mt mieluiten).
  • Vultr-instanssi, jossa on Ubuntu 17.04.

Tässä oppaassa käytetty pino

  • Nginx : nopea ja tehokas verkkopalvelin. (versio 1.10.3)
  • Matkustaja : sovelluspalvelin, joka auttaa Nginxiä palvelemaan Ruby-sovellustasi. (versio 1.5.1.8)
  • Rbenv : Ruby-versionhallinta. (versio 1.1.1-2)
  • Ruby : (versio 2.4.1)
  • MariaDB : MySQL-palvelimen avoimen lähdekoodin haara (versio 10.2)
  • Let's Encryptin SSL- sertifikaatti

Asennus

Lisää Sudo-käyttäjä

Huomautus : On erittäin suositeltavaa olla asentamatta mitään näistä palveluista pääkäyttäjänä, koska saatat altistaa itsesi hyökkäykselle. Perustamalla deploytai appkäyttäjä on yhteinen yleissopimus:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Päivitä ja päivitä järjestelmä

Varmista, että käytät kaikkia uusimpia paketteja Ubuntu VM:ssäsi:

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

Asenna Build System

Jotta Ruby voidaan kääntää rbenv:n ja muiden helmien avulla, on asennettava erilaisia ​​paketteja. Riippuen tarvitsemastasi Rubyn versiosta, joitain paketteja ei ehkä tarvita.

Kokoaminen
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
Paketit SSL-tukeen

Nämä ovat välttämättömiä useiden helmien, kuten Matkustaja, kokoamiseen:

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

Ruby-yhteisö käyttää Gitiä SCM:nä; mutta myös muita, kuten Mercurial tai Subversion, voidaan asentaa:

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

Vaaditaan useille suosituille helmille, jotka tarvitsevat alkuperäisiä XML-libsejä:

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

Lisää virallisia tietovarastoja Nodesta uusimmalla versiolla, koska oletusarvoiset Ubuntu-arkistot ovat yleensä jäljessä muutamista pääversioista:

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

Valinnaiset paketit

Näitä paketteja ei vaadita järjestelmän toimintaan, mutta ne ovat hyvät, jos haluat käyttää tiettyjä helmiä.

Kaaviot ja kuvat

Nämä kirjastot eivät ole välttämättömiä, ja ne voidaan ohittaa, ellet aio käyttää kuvankäsittelyn helmiä; kuten Rmagick:

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

Tietokanta-ajurit SQLiten ja PostgreSQL:lle

Asenna SQLiten tai PostgreSQL:n ohjaimet, jos haluat muodostaa yhteyden muihin tietokantoihin tai haluat käyttää yksinkertaista paikallista tietokantaa:

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

Työkalut

Apuohjelmat, joita ei tavallisesti ole esiasennettu uuteen Ubuntu-asennukseen. Voit vapaasti asentaa haluamasi tekstieditorin:

sudo apt-get install -y iotop htop nano vim

Asenna MariaDB-palvelin

MariaDB on tehokas relaatio-SQL-palvelin, joka on täysin yhteensopiva MySQL:n kanssa. Helpoin tapa asentaa MariaDB:n uusin versio on käyttää virallisia tietovarastoja:

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

Noudata kehotteita ja määritä pääkäyttäjän salasana. Varmista tämän jälkeen, että pääset käyttämään uutta asennusta:

mysql -V 

Se näyttää seuraavanlaisen rivin:

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

Kirjaudu MySQL-kuoreen:

mysql -h localhost -u root -p 

Huomautus : käytä \qpoistumiseen.


Asenna Rbenv ja Ruby

Rbenv

Asenna Rbenv gitin avulla. Tämä on yksinkertaisin asennustapa, ja se mahdollistaa helpon päivityksen myöhemmin. Asenna myös ruby-build, se vastaa itse asiassa Rubyn eri versioiden kääntämisestä:

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

Huomautus : Kun sinun on päivitettävä yksinkertaisesti cd ~/.rbenvja git pull.

Tee Rbenv ja Ruby-build saataville kuoressa. Sen varmistamiseksi, että vienti linjat saavat lisätään alussa ja .bashrctiedoston, joka on tärkeä ei-vuorovaikutteisia bash komennot, käyttävät näitä rivejä:

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

Tarkista, ovatko Rbenv ja Ruby-build asennettu ja ovatko saatavilla shellissä:

rbenv install --list

Jos rbenvsitä ei tunnisteta, kirjaudu ulos ja kirjaudu takaisin kuoreen.

Luo ~/.bash_profiletiedosto ja osoita se lähdekoodiin ~/.bashrc. Jos sinun on suoritettava ei-interaktiivisia komentotulkkikomentoja Rails-sovelluksesta, kuten cron-työt, joita whenevergem määrittää, se käyttää samaa Rubyn versiota kuin interaktiivinen kuori. Tämä voi auttaa estämään outoja virheitä. Lisää ~/.bash_profiletiedostoon tämä rivi :

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

Rubiini

Asenna Ruby 2.4.1:

rbenv install 2.4.1

Huomautus : Tämä prosessi voi kestää 5–15 minuuttia riippuen virtuaalikoneen resursseista, eikä siinä ole edistymispalkkia.

Tee Rbenv saatavilla kaikkialla.

rbenv global 2.4.1

Matkustaja ja Nginx

Lisää PGP-avain ja HTTPS-tuki apt:lle:

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

Lisää matkustaja-arkisto:

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

Asenna Passenger + Nginx -moduulit:

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

Käy Vultr-esiintymässäsi käyttämällä sen verkkotunnusta tai IP-osoitetta testataksesi niitä tässä vaiheessa. Jos ne toimivat, sivullasi näkyy oletusarvoinen Nginx-tervetulosivu.

Setup Rails, App ja Configure Passenger

Asenna nippu ja kiskot:

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

Ubuntu/Debianin tapa on määrittää sovelluksesi /var/www. Oletuksena se on vain pääkäyttäjän kirjoitettavissa. Jotta asetukset toimisivat, anna omistusoikeus sudo-käyttäjälle deploy:

sudo chown deploy:deploy /var/www -R

Luo kiskot sovelluksessa /var/www/. Jos sinulla on jo sovellus, jonka haluat ottaa käyttöön, git clonese tässä ja suorita sitten bundle:

cd /var/www
rails new example --database=mysql
Määritä matkustaja osoittamaan sovellusta.
  1. Valmistele Nginx.

    sudo nano /etc/nginx/nginx.conf
    
  2. Vaihda käyttäjäksi deploy.

    user deploy;
    
  3. Asetuksen httposiossa pitäisi olla rivi, joka käskee Nginxiä lataamaan moduulit, mukaan lukien matkustaja. Jos se puuttuu, voit lisätä sen heti Virtual Host Configsotsikon jälkeen , mutta ennen sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Muokkaa/luo passenger.conftiedosto.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Pyydä matkustajaa käyttämään Rbenv-asetuksiamme. Se voi sisältää rivin, joka osoittaa Passengerin mukana tulevaan Ruby-versioon, poista se tai kommentoi se.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Määritä virtuaalinen isäntä osoittamaan sovelluksessa /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. Käynnistä Nginx uudelleen.

    sudo service nginx restart
    

Tässä vaiheessa sovelluksesi on valmis käytettäväksi kehitystilassa. Jos haluat vaihtaa tuotantotilaan, sinun on palattava Nginx-kokoonpanoon ja muutettava rails_envasetukseksi production.

Ennen kuin siirryt tuotantotilaan, sinun on silti määritettävä tuotantotietokanta example_production, database.yml, ja salainen avain. Tutustu työkaluihin, kuten Capistrano tai Mina, nopeuttaaksesi sovelluksesi käyttöönottoa. On hyvä käytäntö käyttää ENV-muuttujia jalokiven kanssa, kuten dotenv, äläkä sitoa salasanoja, salaisia ​​avaimia ja muuta git-tietovarastoon.

Asenna SSL

On olemassa useita palveluita, jotka tarjoavat SSL-varmenteita verkkotunnuksellesi, monet ovat maksullisia ja muutama on ilmaisia. Määritä SSL riippumatta siitä, mitä palvelua käytät. Let's Encrypt on erittäin helppokäyttöinen ja ilmainen. Let's Encrypt on voittoa tavoittelematon organisaatio, jota tukevat monet teknologiajättiläiset.

Asennus

Suorita seuraavat komennot ja seuraa ohjeita.

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

Jos siirryt Vultr-instanssiisi nyt käyttämällä HTTPS, näet suojatun verkkosivuston.

Uusiminen

Äskettäin myöntämäsi varmenne vanhenee, ja se on uusittava säännöllisesti. Helpoin tapa tehdä tämä on määrittää cron-työ.

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

Viimeisenä, mutta valinnaisena vaiheena, käynnistä VM uudelleen ja varmista, että kaikki palvelut käynnistyvät uudelleen odotetulla tavalla.


Asenna Plesk CentOS 7:ään

Asenna Plesk CentOS 7:ään

Käytätkö erilaista järjestelmää? Plesk on patentoitu verkkoisäntäohjauspaneeli, jonka avulla käyttäjät voivat hallita henkilökohtaisia ​​ja/tai asiakkaidensa verkkosivustoja, tietokantoja

Asenna Cacti Debian Jessielle

Asenna Cacti Debian Jessielle

Johdanto Cacti on avoimen lähdekoodin seuranta- ja grafiikkatyökalu, joka perustuu täysin RRD-tietoihin. Cactin kautta voit seurata lähes minkä tahansa tyyppisiä laitteita

Asenna Lets Encrypt SSL One-Click WordPress -sovellukseen

Asenna Lets Encrypt SSL One-Click WordPress -sovellukseen

Johdanto Lets Encrypt on varmenteen myöntäjäpalvelu, joka tarjoaa ilmaisia ​​TLS/SSL-varmenteita. Certbot yksinkertaistaa asennusprosessia,

Tekkit Classic -palvelimen määrittäminen Ubuntu 16.10:ssä

Tekkit Classic -palvelimen määrittäminen Ubuntu 16.10:ssä

Käytätkö erilaista järjestelmää? Mikä on Tekkit Classic? Tekkit Classic on modack peliin, jonka kaikki tuntevat ja rakastavat; Minecraft. Se sisältää joitain ver

Asenna iRedMail Debian Wheezylle

Asenna iRedMail Debian Wheezylle

Käytätkö erilaista järjestelmää? Tämä opetusohjelma näyttää kuinka asennat ryhmätyöohjelman iRedMail uuteen Debian Wheezy -asennukseen. Sinun pitäisi käyttää tarjoilua

Jekyll-blogin luominen Ubuntuun 16.04

Jekyll-blogin luominen Ubuntuun 16.04

Käytätkö erilaista järjestelmää? Jekyll on loistava vaihtoehto WordPressille bloggaamiseen tai sisällön jakamiseen. Se ei vaadi tietokantoja ja se on erittäin helppoa i

Valvomattomien päivitysten asentaminen Debian 9:ssä (Stretch)

Valvomattomien päivitysten asentaminen Debian 9:ssä (Stretch)

Käytätkö erilaista järjestelmää? Jos ostat Debian-palvelimen, sinulla pitäisi aina olla viimeisimmät tietoturvakorjaukset ja -päivitykset riippumatta siitä, oletko nukkumassa vai ei.

PHP 7.0:n tai PHP 7.1:n asentaminen ja määrittäminen Ubuntu 16.04:ssä

PHP 7.0:n tai PHP 7.1:n asentaminen ja määrittäminen Ubuntu 16.04:ssä

PHP ja siihen liittyvät paketit ovat yleisimmin käytettyjä komponentteja verkkopalvelimen käyttöönotossa. Tässä artikkelissa opimme asentamaan PHP 7.0 tai PHP 7.1 o

Kuinka asentaa Squid Proxy CentOS:ään

Kuinka asentaa Squid Proxy CentOS:ään

Squid on suosittu, ilmainen Linux-ohjelma, jonka avulla voit luoda edelleenlähetysverkkovälityspalvelimen. Tässä oppaassa näet, kuinka Squid asennetaan CentOS:ään kääntääksesi sinut

Lighttpd:n (LLMP Stack) asentaminen CentOS 6:een

Lighttpd:n (LLMP Stack) asentaminen CentOS 6:een

Johdanto Lighttpd on Apachen haarukka, jonka tarkoituksena on olla paljon vähemmän resurssiintensiivinen. Se on kevyt, tästä syystä sen nimi, ja on melko yksinkertainen käyttää. Asenna

Kolme ilmaista palvelinohjauspaneelia (pikaasennus)

Kolme ilmaista palvelinohjauspaneelia (pikaasennus)

1. Virtualmin/Webmin Virtualmin on tehokas ja joustava web-hosting-ohjauspaneeli Linux- ja UNIX-järjestelmille, joka perustuu tunnettuun avoimen lähdekoodin verkkotietokantaan

Yii-sovelluksen määrittäminen Ubuntuun 14.04

Yii-sovelluksen määrittäminen Ubuntuun 14.04

Yii on PHP-kehys, jonka avulla voit kehittää sovelluksia nopeammin ja helpommin. Yiin asentaminen Ubuntuun on yksinkertaista, kuten opit tarkalleen

Näytön käyttö Ubuntu 14.04:ssä

Näytön käyttö Ubuntu 14.04:ssä

Screen on sovellus, joka mahdollistaa usean pääteistuntojen käytön yhdessä ikkunassa. Tämän avulla voit simuloida useita pääteikkunoita, joissa se ma

Asenna oma DNS-palvelin Debianissa/Ubuntussa

Asenna oma DNS-palvelin Debianissa/Ubuntussa

Tämä opetusohjelma selittää, kuinka DNS-palvelin määritetään Bind9:n avulla Debianissa tai Ubuntussa. Korvaa koko artikkelin ajan verkkotunnuksesi-nimi.com vastaavasti. klo th

Logrotaten käyttäminen lokitiedostojen hallintaan

Logrotaten käyttäminen lokitiedostojen hallintaan

Johdanto Logrotate on Linux-apuohjelma, joka yksinkertaistaa lokitiedostojen hallintaa. Se toimii yleensä kerran päivässä cron-työn kautta ja hallitsee lokipohjaa

Staattisen verkon ja IPv6:n määrittäminen CentOS 7:ssä

Staattisen verkon ja IPv6:n määrittäminen CentOS 7:ssä

VULTR on äskettäin tehnyt muutoksia heidän omiinsa, ja kaiken pitäisi nyt toimia hyvin heti, kun NetworkManager on käytössä. Jos haluat poistaa käytöstä

Icinga2:n muokkaaminen käyttämään pää/asiakasmallia CentOS 6:ssa tai CentOS 7:ssä

Icinga2:n muokkaaminen käyttämään pää/asiakasmallia CentOS 6:ssa tai CentOS 7:ssä

Icinga2 on tehokas valvontajärjestelmä, ja master-client-mallissa käytettynä se voi korvata NRPE-pohjaisten valvontatarkastusten tarpeen. Pääasiakas

Asenna Red5 Media Server Ubuntu 16.04:ään

Asenna Red5 Media Server Ubuntu 16.04:ään

Käytätkö erilaista järjestelmää? Red5 on Java-kielellä toteutettu avoimen lähdekoodin mediapalvelin, jonka avulla voit ajaa Flash-monikäyttäjäsovelluksia, kuten suoratoistoa.

Käännä ja asenna Nginx PageSpeed-moduulilla Debian 8:ssa

Käännä ja asenna Nginx PageSpeed-moduulilla Debian 8:ssa

Tässä artikkelissa näemme, kuinka Nginx-päälinja voidaan kääntää ja asentaa virallisista Nginx-lähteistä PageSpeed-moduulilla, jonka avulla voit

Apache Cassandra 3.11.x:n asentaminen Ubuntu 16.04 LTS:ään

Apache Cassandra 3.11.x:n asentaminen Ubuntu 16.04 LTS:ään

Käytätkö erilaista järjestelmää? Apache Cassandra on ilmainen ja avoimen lähdekoodin NoSQL-tietokannan hallintajärjestelmä, joka on suunniteltu tarjoamaan skaalautuvuutta, hig.

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja