A Ruby telepítése és konfigurálása Rbenv, Rails, MariaDB, Nginx, SSL és Passenger segítségével az Ubuntu 17.04-en

A Ruby on Rails egy népszerű webes keretrendszer a Ruby számára, amelyet a programozók termelékenységének növelésére fejlesztettek ki. Azonban a különféle drágakövek és függőségek összevonása néha bonyolult lehet. Ez az útmutató segít egy teljes, gyártásra kész Rails-környezet beállításában, beleértve a gyakran használt drágaköveket és függőségeket.

Követelmények

  • Vultr példány legalább 512 MB RAM-mal (1024 MB előnyben).
  • Ubuntu 17.04-et futtató Vultr példány.

Az útmutatóban használt köteg

  • Nginx : egy gyors és hatékony webszerver. (verzió 1.10.3)
  • Passenger : egy alkalmazásszerver, amely segít az Nginxnek a Ruby alkalmazás kiszolgálásában. (verzió 1.5.1.8)
  • Rbenv : Ruby verziókezelő. (verzió 1.1.1-2)
  • Ruby : (2.4.1-es verzió)
  • MariaDB : a MySQL szerver nyílt forráskódú ága (verzió 10.2)
  • SSL- tanúsítvány a Let's Encrypt-től

Telepítés

Sudo-felhasználó hozzáadása

Megjegyzés : Erősen ajánlott, hogy ne telepítse ezeket a szolgáltatásokat rootként, mert támadásnak teheti ki magát. A deployvagy a appfelhasználó beállítása egy általános konvenció:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Rendszer frissítése és frissítése

Győződjön meg arról, hogy az összes legújabb csomagot futtatja Ubuntu virtuális gépén:

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

Telepítse a Build System rendszert

Ahhoz, hogy le tudjuk fordítani a Rubyt az rbenv és más drágakövek használatával, különféle csomagokat kell telepíteni. Attól függően, hogy a Ruby melyik verziójára lesz szüksége, előfordulhat, hogy egyes csomagokra nincs szükség.

Összeállítás
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-támogatási csomagok

Ezekre több drágakő összeállításához van szükség, mint például az Utas:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Verziószámítás

A Ruby közösség a Git-et használja választott SCM-ként; de továbbiak is telepíthetők, mint például a Mercurial vagy a Subversion:

sudo apt-get install -y git git-core
Adatbázis-illesztőprogramok a MySQL / MariaDB számára
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

Számos népszerű gyöngyszemhez szükséges, amelyekhez natív XML libre van szükség:

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

Adjon hozzá hivatalos adattárakat a Node-ból a legújabb verzióval, mivel az alapértelmezett Ubuntu-lerakatok általában lemaradnak néhány nagyobb verziótól:

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

Választható csomagok

Ezek a csomagok nem szükségesek a rendszer működéséhez, de jó, ha rendelkezünk, ha bizonyos gyöngyszemeket kell használni.

Grafikonok és képek

Ezek a könyvtárak nem szükségesek, és kihagyhatók, hacsak nem tervezi képmanipulációs drágakövek használatát; mint például Rmagick:

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

Adatbázis-illesztőprogramok SQLite és PostgreSQL számára

Telepítse az SQLite vagy PostgreSQL illesztőprogramjait, ha más adatbázisokhoz kell csatlakoznia, vagy egy egyszerű, helyi DB-t szeretne:

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

Eszközök

Olyan segédprogramok, amelyek általában nem érkeznek előre telepítve egy friss Ubuntu-telepítésre. Nyugodtan telepítse a kívánt szövegszerkesztőt:

sudo apt-get install -y iotop htop nano vim

Telepítse a MariaDB szervert

A MariaDB egy erőteljes relációs SQL szerver, amely teljes mértékben kompatibilis a MySQL-lel. A MariaDB legújabb verziójának telepítésének legegyszerűbb módja a hivatalos adattárak használata:

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

Kövesse az utasításokat, és állítson be root jelszót. Ezt követően ellenőrizze, hogy hozzáfér-e a friss telepítéshez:

mysql -V 

Egy ehhez hasonló sort fog megjeleníteni:

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

Jelentkezzen be a MySQL shellbe:

mysql -h localhost -u root -p 

Megjegyzés : használja \qa kilépéshez.


Telepítse az Rbenv-t és a Rubyt

Rbenv

Telepítse az Rbenv-t a git segítségével. Ez a legegyszerűbb telepítési módszer, és lehetővé teszi a későbbi egyszerű frissítéseket. Telepítse továbbá ruby-builda Ruby különböző verzióinak tényleges fordítását:

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

Note: When you need to update simply cd ~/.rbenv and git pull.

Make Rbenv and Ruby-build available in the shell. To ensure that the export lines get inserted at the beginning of the .bashrc file, which is important for non-interactive bash commands, use these lines:

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

Check if Rbenv and Ruby-build installed and are available in shell:

rbenv install --list

If rbenv is not recognized, log out and log back into the shell.

Create a ~/.bash_profile file and point it to source your ~/.bashrc file. If you need to run any non-interactive shell commands from your Rails app, such as cron jobs setup by the whenever gem, it will use the same version of Ruby as your interactive shell. This can help prevent strange errors. Add this line to the ~/.bash_profile file:

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

Ruby

Install Ruby 2.4.1:

rbenv install 2.4.1

Megjegyzés : Ez a folyamat 5-15 percig tarthat a virtuális gép erőforrásaitól függően, és nincs folyamatjelző sáv.

Tegye elérhetővé az Rbenv-t mindenhol.

rbenv global 2.4.1

Utas és Nginx

Adja hozzá a PGP-kulcsot és a HTTPS-támogatást az apt-hoz:

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

Adja hozzá az utastárat:

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

Telepítse a Passenger + Nginx modulokat:

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

Látogassa meg Vultr-példányát annak tartománynevével vagy IP-címével, hogy tesztelje ezeket ezen a ponton. Ha működnek, az oldalon az alapértelmezett Nginx üdvözlőoldal jelenik meg.

Setup Rails, az App és Configure Passenger

Bundler és sínek telepítése:

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

Az Ubuntu/Debian konvenció szerint az alkalmazást itt kell beállítani /var/www. Alapértelmezés szerint csak root által írható. A beállítás működéséhez adja át a tulajdonjogot a sudo felhasználónak deploy:

sudo chown deploy:deploy /var/www -R

A sínek alkalmazás létrehozása itt: /var/www/. Ha már rendelkezik egy alkalmazással, amelyet telepíteni szeretne, git cloneitt futtassa bundle:

cd /var/www
rails new example --database=mysql
Állítsa be az Utast úgy, hogy az alkalmazásra mutasson.
  1. Nginx előkészítése.

    sudo nano /etc/nginx/nginx.conf
    
  2. Felhasználó módosítása erre: deploy.

    user deploy;
    
  3. A httpkonfiguráció részében egy sornak kell lennie, amely megmondja az Nginx-nek, hogy töltse be a modulokat, beleértve az utasokat is. Ha hiányzik, hozzáadhatja közvetlenül a Virtual Host Configscím után , de előtte sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Szerkessze/hozza létre a passenger.conffájlt.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Mondja meg az Utasnak, hogy használja az Rbenv-beállításunkat. Tartalmazhat egy sort, amely a Passengerhez mellékelt Ruby verzióra mutat, csak töröld vagy írd megjegyzésbe.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Állítsa be a virtuális gazdagépet, hogy az alkalmazásra mutasson /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. Indítsa újra az Nginxet.

    sudo service nginx restart
    

Ezen a ponton az alkalmazás készen áll a fejlesztési módban való használatra. Az éles módra váltáshoz vissza kell térnie az Nginx konfigurációjához, és módosítania kell a rails_envbeállítást a következőre production.

Mielőtt éles módba váltana, be kell állítania éles adatbázisát example_production, database.yml, és titkos kulcsát. Tekintse meg az olyan eszközöket, mint a Capistrano vagy a Mina az alkalmazástelepítési folyamat felgyorsításához. Jó gyakorlat az ENV-változók használata olyan drágakővel, mint a dotenv, és ne hagyd a jelszavaidat, titkos kulcsaidat és hasonlókat a git-tárhelyedben.

SSL beállítása

Számos szolgáltatás kínál SSL-tanúsítványokat az Ön domainjéhez, sok fizetős, néhány pedig ingyenes. Állítsa be az SSL-t, függetlenül attól, hogy milyen szolgáltatást használ. A Let's Encrypt nagyon egyszerűen és ingyenesen használható. A Let's Encrypt egy non-profit szervezet, amelyet számos technológiai óriás támogat.

Telepítés

Futtassa a következő parancsokat, és kövesse az utasításokat.

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

Ha most a Vultr-példányhoz lép a használatával HTTPS, egy biztonságos webhelyet fog látni.

Megújítás

Az újonnan kiállított tanúsítvány lejár, és rendszeresen meg kell újítani. Ennek legegyszerűbb módja egy cron feladat beállítása.

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

Utolsó, de nem kötelező lépésként indítsa újra a virtuális gépet, és győződjön meg arról, hogy minden szolgáltatás a várt módon újraindul.


Telepítse a Plesket a CentOS 7 rendszeren

Telepítse a Plesket a CentOS 7 rendszeren

Más rendszert használ? A Plesk egy szabadalmaztatott webtárhely-vezérlőpult, amely lehetővé teszi a felhasználók számára, hogy adminisztrálják személyes és/vagy ügyfeleik webhelyeit, adatbázisait

A Cacti beállítása a Debian Jessie-n

A Cacti beállítása a Debian Jessie-n

Bevezetés A Cacti egy nyílt forráskódú megfigyelő és grafikus eszköz, amely teljes mértékben az RRD adatokon alapul. A Cactuson keresztül szinte bármilyen típusú eszközt felügyelhet

Telepítse a Lets Encrypt SSL-t az egykattintásos WordPress alkalmazásban

Telepítse a Lets Encrypt SSL-t az egykattintásos WordPress alkalmazásban

Bevezetés A Lets Encrypt egy hitelesítésszolgáltató szolgáltatás, amely ingyenes TLS/SSL-tanúsítványokat kínál. A telepítés folyamatát a Certbot leegyszerűsíti,

Tekkit Classic kiszolgáló beállítása Ubuntu 16.10 rendszeren

Tekkit Classic kiszolgáló beállítása Ubuntu 16.10 rendszeren

Más rendszert használ? Mi az a Tekkit Classic? A Tekkit Classic egy modpack ahhoz a játékhoz, amelyet mindenki ismer és szeret; Minecraft. Tartalmaz néhányat a ver

Az iRedMail beállítása a Debian Wheezy rendszeren

Az iRedMail beállítása a Debian Wheezy rendszeren

Más rendszert használ? Ez az oktatóanyag megmutatja, hogyan telepítheti a csoportmunka iRedMail programot a Debian Wheezy friss telepítésére. Használnia kell egy szervát

Jekyll blog létrehozása Ubuntu 16.04-en

Jekyll blog létrehozása Ubuntu 16.04-en

Más rendszert használ? A Jekyll nagyszerű alternatíva a WordPress helyett blogíráshoz vagy tartalommegosztáshoz. Nem igényel adatbázist, és nagyon egyszerű i

Felügyelet nélküli frissítések beállítása Debian 9-en (Stretch)

Felügyelet nélküli frissítések beállítása Debian 9-en (Stretch)

Más rendszert használ? Ha Debian szervert vásárol, akkor mindig rendelkeznie kell a legújabb biztonsági javításokkal és frissítésekkel, akár alszik, akár nem

A PHP 7.0 vagy PHP 7.1 telepítése és konfigurálása Ubuntu 16.04 rendszeren

A PHP 7.0 vagy PHP 7.1 telepítése és konfigurálása Ubuntu 16.04 rendszeren

A PHP és a kapcsolódó csomagok a leggyakrabban használt összetevők a webszerverek telepítésekor. Ebben a cikkben megtudjuk, hogyan kell beállítani a PHP 7.0 vagy PHP 7.1 o verzióját

A Squid Proxy telepítése a CentOS rendszeren

A Squid Proxy telepítése a CentOS rendszeren

A Squid egy népszerű, ingyenes Linux-program, amely lehetővé teszi továbbítási webproxy létrehozását. Ebben az útmutatóban megtudhatja, hogyan telepítheti a Squid-et a CentOS rendszerre, hogy megfordítsa

A Lighttpd (LLMP Stack) telepítése a CentOS 6 rendszeren

A Lighttpd (LLMP Stack) telepítése a CentOS 6 rendszeren

Bevezetés A Lighttpd az Apache forkja, amely sokkal kevésbé erőforrás-igényes. Könnyű, innen kapta a nevét, és meglehetősen egyszerű a használata. Telepítés

Három ingyenes szervervezérlő panel (gyors telepítés)

Három ingyenes szervervezérlő panel (gyors telepítés)

1. Virtualmin/Webmin A Virtualmin egy hatékony és rugalmas web hosting vezérlőpanel Linux és UNIX rendszerek számára, amely a jól ismert nyílt forráskódú webbázison alapul.

Yii alkalmazás beállítása Ubuntu 14.04-en

Yii alkalmazás beállítása Ubuntu 14.04-en

A Yii egy PHP-keretrendszer, amely lehetővé teszi alkalmazások gyorsabb és egyszerűbb fejlesztését. A Yii telepítése Ubuntura egyszerű, amint azt pontosan megtudhatja

A képernyő használata Ubuntu 14.04-en

A képernyő használata Ubuntu 14.04-en

A Screen egy olyan alkalmazás, amely lehetővé teszi a terminálmunkamenetek többszöri használatát egy ablakon belül. Ez lehetővé teszi több terminálablak szimulálását, ahol ez ma

Állítsa be a saját DNS-kiszolgálóját a Debian/Ubuntu rendszeren

Állítsa be a saját DNS-kiszolgálóját a Debian/Ubuntu rendszeren

Ez az oktatóanyag elmagyarázza, hogyan állíthat be DNS-kiszolgálót a Bind9 használatával Debian vagy Ubuntu rendszeren. A cikkben ennek megfelelően helyettesítse be a saját-domain-neve.com címet. TH-nál

A Logrotate használata naplófájlok kezelésére

A Logrotate használata naplófájlok kezelésére

Bevezetés A Logrotate egy Linux segédprogram, amely leegyszerűsíti a naplófájlok kezelését. Általában naponta egyszer fut egy cron-feladaton keresztül, és kezeli a naplóbázist

A statikus hálózat és az IPv6 konfigurálása CentOS 7 rendszeren

A statikus hálózat és az IPv6 konfigurálása CentOS 7 rendszeren

A VULTR a közelmúltban változtatásokat hajtott végre a saját oldalukon, és most már mindennek jól kell működnie, ha a NetworkManager engedélyezve van. Ha szeretné letiltani

Az Icinga2 módosítása a mester/kliens modell használatához CentOS 6 vagy CentOS 7 rendszeren

Az Icinga2 módosítása a mester/kliens modell használatához CentOS 6 vagy CentOS 7 rendszeren

Az Icinga2 egy hatékony felügyeleti rendszer, és mester-kliens modellben használva helyettesítheti az NRPE-alapú felügyeleti ellenőrzések szükségességét. A mester-kliens

A Red5 Media Server beállítása az Ubuntu 16.04 rendszeren

A Red5 Media Server beállítása az Ubuntu 16.04 rendszeren

Más rendszert használ? A Red5 egy Java nyelven megvalósított nyílt forráskódú médiaszerver, amely lehetővé teszi többfelhasználós Flash-alkalmazások, például élő streamin futtatását.

Fordítsa le és telepítse az Nginx-et a PageSpeed ​​Modul segítségével a Debian 8 rendszeren

Fordítsa le és telepítse az Nginx-et a PageSpeed ​​Modul segítségével a Debian 8 rendszeren

Ebben a cikkben látni fogjuk, hogyan fordíthatja le és telepítheti az Nginx fővonalat az Nginx hivatalos forrásaiból a PageSpeed ​​modullal, amely lehetővé teszi a

Az Apache Cassandra 3.11.x telepítése Ubuntu 16.04 LTS rendszeren

Az Apache Cassandra 3.11.x telepítése Ubuntu 16.04 LTS rendszeren

Más rendszert használ? Az Apache Cassandra egy ingyenes és nyílt forráskódú NoSQL adatbázis-kezelő rendszer, amelyet úgy terveztek, hogy biztosítsa a méretezhetőséget,

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket