Како инсталирати и конфигурисати Руби са Рбенв, Раилс, МариаДБ, Нгинк, ССЛ и Пассенгер на Убунту 17.04

Руби он Раилс је популаран веб оквир за Руби који је развијен да повећа продуктивност програмера. Међутим, навођење различитих драгуља и зависности да раде заједно понекад може бити тешко. Овај водич ће вам помоћи да поставите Раилс окружење спремно за производњу, укључујући често коришћене драгуље и зависности.

Захтеви

  • Вултр инстанца са најмање 512 МБ РАМ-а (пожељно 1024 МБ).
  • Вултр инстанца која покреће Убунту 17.04.

Група која се користи у овом водичу

  • Нгинк : брз и моћан веб сервер. (верзија 1.10.3)
  • Пассенгер : сервер апликација који ће помоћи Нгинк-у да служи вашу Руби апликацију. (верзија 1.5.1.8)
  • Рбенв : менаџер верзија Руби. (верзија 1.1.1-2)
  • Руби : (верзија 2.4.1)
  • МариаДБ : грана отвореног кода МиСКЛ сервера (верзија 10.2)
  • ССЛ сертификат компаније Лет'с Енцрипт

Инсталација

Додајте Судо корисника

Напомена : Веома је препоручљиво да не инсталирате ниједну од ових услуга као роот, јер бисте се могли изложити нападу. Подешавање корисника deployили appкорисника је уобичајена конвенција:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Ажурирајте и надоградите систем

Уверите се да користите све најновије пакете на свом Убунту ВМ-у:

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

Инсталирајте Буилд Систем

Да бисте могли да компајлирате Руби користећи рбенв и друге драгуље, потребно је инсталирати разне пакете. У зависности од верзије Руби-а која ће вам требати, неки од пакета можда неће бити потребни.

Састављање
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
Пакети за ССЛ подршку

Ово је неопходно за састављање неколико драгуља, као што је Пассенгер:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Версионинг

Руби заједница користи Гит као СЦМ по избору; али додатни, као што су Мерцуриал или Субверсион, такође се могу инсталирати:

sudo apt-get install -y git git-core
Драјвери базе података за МиСКЛ / МариаДБ
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Нокогири

Потребно за неколико популарних драгуља којима су потребне изворне КСМЛ библиотеке:

sudo apt-get install -y libxml2-dev libxslt-dev
Ноде.јс

Додајте званична спремишта из Ноде-а са најновијом верзијом као подразумевана Убунту спремишта обично заостају за неколико главних верзија:

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

Опциони пакети

Ови пакети нису потребни да би систем могао да ради, али је добро имати ако треба да користите одређене драгуље.

Графикони и слике

Ове библиотеке нису неопходне и могу се прескочити осим ако не планирате да користите драгуље за манипулацију сликама; као што је Рмагицк:

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

Драјвери базе података за СКЛите и ПостгреСКЛ

Инсталирајте драјвере за СКЛите или ПостгреСКЛ ако желите да се повежете са другим базама података или више волите једноставну, локалну ДБ:

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

Алати

Услужни програми који се обично не испоручују унапред инсталирани на новој инсталацији Убунтуа. Слободно инсталирајте свој уређивач текста по избору:

sudo apt-get install -y iotop htop nano vim

Инсталирајте МариаДБ сервер

МариаДБ је моћан релациони СКЛ сервер, који је потпуно компатибилан са МиСКЛ. Најлакши начин да инсталирате најновију верзију МариаДБ-а је коришћење званичних спремишта:

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

Пратите упутства и поставите роот лозинку. Након тога, проверите да ли можете да приступите новој инсталацији:

mysql -V 

Приказаће линију сличну овој:

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

Пријавите се у МиСКЛ љуску:

mysql -h localhost -u root -p 

Напомена : користите \qза излаз.


Инсталирајте Рбенв и Руби

Рбенв

Инсталирајте Рбенв користећи гит. Ово је најједноставнији метод инсталације и омогућава лака ажурирања касније. Такође инсталирајте ruby-build, он је одговоран за стварно компајлирање различитих верзија Руби-а:

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

Напомена : Када је потребно да једноставно ажурирате cd ~/.rbenvи git pull.

Учините Рбенв и Руби-буилд доступним у љусци. Да би се осигурало да се извозни линије уметнут на почетку овог .bashrcфајла, што је важно за не-интерактивне басх команде, користите ове линије:

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

Проверите да ли су Рбенв и Руби-буилд инсталирани и доступни у љусци:

rbenv install --list

Ако rbenvсе не препозна, одјавите се и поново се пријавите у љуску.

Направите ~/.bash_profileдатотеку и усмерите је на извор ~/.bashrcдатотеке. Ако треба да покренете било које неинтерактивне команде љуске из ваше Раилс апликације, као што је постављање црон послова помоћу wheneverдрагуља, она ће користити исту верзију Руби-а као ваша интерактивна шкољка. Ово може помоћи у спречавању чудних грешака. Додајте ову линију у ~/.bash_profileдатотеку:

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

Руби

Инсталирајте Руби 2.4.1:

rbenv install 2.4.1

Напомена : Овај процес може трајати 5-15 минута у зависности од ресурса на вашем ВМ-у и нема траке напретка.

Нека Рбенв буде доступан свуда.

rbenv global 2.4.1

Пассенгер и Нгинк

Додајте ПГП кључ и ХТТПС подршку за апт:

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

Додајте Пассенгер спремиште:

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

Инсталирајте Пассенгер + Нгинк модуле:

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

Посетите своју Вултр инстанцу користећи њено име домена или ИП да бисте их тестирали у овом тренутку. Ако раде, ваша страница ће приказати подразумевану Нгинк страницу добродошлице.

Подесите Раилс, апликацију и конфигуришите Пассенгер

Инсталирајте Бундлер и Раилс:

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

Убунту/Дебиан конвенција је подешавање ваше апликације у /var/www. Подразумевано, у њега се може писати само роот. Да би подешавање функционисало, дајте власништво судо кориснику deploy:

sudo chown deploy:deploy /var/www -R

Генеришите апликацију раилс у /var/www/. Ако већ имате апликацију коју желите да примените, git cloneпокрените је овде и затим bundle:

cd /var/www
rails new example --database=mysql
Конфигуришите Пассенгер да показује на апликацију.
  1. Преп Нгинк.

    sudo nano /etc/nginx/nginx.conf
    
  2. Промените корисника у deploy.

    user deploy;
    
  3. У httpодељку конфигурације, требало би да постоји линија која говори Нгинк-у да учита модуле укључујући путника. Ако недостаје, можете га додати одмах после Virtual Host Configsнаслова, али пре sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Уредите/креирајте passenger.confдатотеку.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Реците путнику да користи наше Рбенв подешавање. Може да садржи линију која указује на верзију Руби-а укључену у Пассенгер, само је избришите или коментаришите.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Подесите виртуелни хост да указује на апликацију у /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. Поново покрените Нгинк.

    sudo service nginx restart
    

У овом тренутку ваша апликација је спремна за коришћење у развојном режиму. Да бисте прешли на производни режим, потребно је да се вратите на своју Нгинк конфигурацију и промените rails_envпоставку у production.

Пре него што пређете на производном моду, и даље ће морати да подесите свој базу за производњу example_production, database.ymlи тајни кључ. Погледајте алатке попут Цапистрано или Мина да бисте убрзали процес имплементације апликације. Добра је пракса да користите ЕНВ променљиве са драгуљем као што је dotenv, и не урезујте своје лозинке, тајне кључеве и слично у своје гит спремиште.

Сетуп ССЛ

Постоји више услуга које нуде ССЛ сертификате за ваш домен, многи су плаћени, а неколико бесплатни. Подесите ССЛ без обзира коју услугу користите. Лет'с Енцрипт је веома једноставан и бесплатан за коришћење. Лет'с Енцрипт је непрофитна организација коју подржавају многи технолошки гиганти.

Инсталација

Покрените следеће команде и пратите упутства.

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

Ако сада одете на своју Вултр инстанцу користећи HTTPS, видећете безбедну веб локацију.

Реневал

Ваш новоиздати сертификат ће истећи и мораћете да га повремено обнављате. Најлакши начин да то урадите је да поставите црон посао.

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

Као последњи, али опциони корак, поново покрените свој ВМ и уверите се да се све услуге поново покрећу према очекивањима.

Остави коментар

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више