O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Ruby on Rails este un cadru web popular pentru Ruby, care a fost dezvoltat pentru a crește productivitatea unui programator. Cu toate acestea, obținerea de diferite pietre și dependențe pentru a lucra împreună poate fi dificil uneori. Acest ghid vă va ajuta să configurați un mediu complet Rails gata pentru producție, inclusiv pietre și dependențe utilizate frecvent.
Notă : Este foarte recomandat să nu instalați niciunul dintre aceste servicii ca root, deoarece s-ar putea să vă expuneți unui atac. Configurarea unui deploysau a unui apputilizator este o convenție comună:
sudo adduser deploy
sudo adduser deploy sudo
su deploy
Asigurați-vă că executați toate cele mai recente pachete de pe Ubuntu VM:
sudo apt-get update && sudo apt-get upgrade -y
Pentru a putea compila Ruby folosind rbenv și alte pietre pretioase, trebuie instalate diverse pachete. În funcție de versiunea de Ruby de care veți avea nevoie, este posibil ca unele dintre pachete să nu fie necesare.
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
Acestea sunt necesare pentru a compila mai multe pietre pretioase, cum ar fi Pasagerul:
sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Comunitatea Ruby utilizează Git ca SCM la alegere; dar pot fi instalate și altele, cum ar fi Mercurial sau Subversion:
sudo apt-get install -y git git-core
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Obligatoriu pentru mai multe pietre populare care au nevoie de libs XML native:
sudo apt-get install -y libxml2-dev libxslt-dev
Adăugarea depozitelor oficiale de la Node cu cea mai recentă versiune, întrucât depozitele Ubuntu implicit tind să rămână în urmă câteva versiuni majore:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Aceste pachete nu sunt necesare pentru ca sistemul să funcționeze, dar este bine să le ai dacă trebuie să folosești anumite pietre pretioase.
Aceste biblioteci nu sunt necesare și pot fi ignorate, cu excepția cazului în care intenționați să utilizați pietre de manipulare a imaginii; cum ar fi Rmagick:
sudo apt-get install -y imagemagick libmagickwand-dev libvips-dev
Instalați driverele pentru SQLite sau PostgreSQL dacă aveți nevoie să vă conectați la alte baze de date sau dacă preferați o DB locală simplă:
sudo apt-get install -y libsqlite3-dev sqlite3 libpq-dev postgresql postgresql-contrib
Utilități care în mod normal nu sunt preinstalate pe o nouă instalare Ubuntu. Nu ezitați să vă instalați editorul de text la alegere:
sudo apt-get install -y iotop htop nano vim
MariaDB este un server SQL relațional puternic, care este complet compatibil cu MySQL. Cel mai simplu mod de a instala cea mai recentă versiune a MariaDB este folosirea depozitelor oficiale:
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
Urmați instrucțiunile și configurați o parolă rădăcină. După, verificați dacă puteți accesa noua instalație:
mysql -V
Va afișa o linie similară cu aceasta:
mysql Ver 15.1 Distrib 10.2.8-MariaDB, for debian-linux-gnu (x86_64) using readline 5
Conectați-vă la shell-ul MySQL:
mysql -h localhost -u root -p
Notă : utilizați \qpentru a ieși.
Instalați Rbenv folosind git. Aceasta este cea mai simplă metodă de instalare și permite actualizări ușoare ulterior. De asemenea ruby-build, instalați , este responsabil de compilarea efectivă a diferitelor versiuni de Ruby:
cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Notă : Când trebuie să actualizați pur cd ~/.rbenvși simplu git pull.
Faceți Rbenv și Ruby-build disponibile în coajă. Pentru a se asigura că liniile de export se introduce la începutul a .bashrcfișierului, care este important pentru comenzi bash non-interactive, folosesc aceste linii:
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
Verificați dacă Rbenv și Ruby-build sunt instalate și sunt disponibile în shell:
rbenv install --list
Dacă rbenvnu este recunoscut, deconectați-vă și conectați-vă la coajă
Creați un ~/.bash_profilefișier și indicați-l către sursa ~/.bashrcfișierului. Dacă aveți nevoie să rulați comenzi shell-uri non-interactive din aplicația dvs. Rails, cum ar fi configurarea lucrărilor cron de către wheneverbijuterie, va folosi aceeași versiune de Ruby ca și shell-ul dvs. interactiv. Acest lucru poate ajuta la prevenirea erorilor ciudate. Adăugați această linie la ~/.bash_profilefișier:
if [ -f $HOME/.bashrc ]; then
source $HOME/.bashrc
fi
Instalați Ruby 2.4.1:
rbenv install 2.4.1
Notă : Acest proces poate dura 5-15 minute în funcție de resursele de pe VM-ul dvs. și nu există o bară de progres.
Faceți Rbenv disponibil peste tot.
rbenv global 2.4.1
Adăugați cheia PGP și suportul HTTPS pentru 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
Adăugați depozitul de pasageri:
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
Instalați modulele Pasager + Nginx:
sudo apt-get install -y nginx
sudo apt-get install -y libnginx-mod-http-passenger
Accesați instanța dvs. Vultr folosind numele de domeniu sau IP pentru a le testa în acest moment. Dacă funcționează, pagina dvs. va afișa pagina implicită de bun venit Nginx.
Instalați Bundler and Rails:
gem install bundler rails --no-ri --no-rdoc
Convenția Ubuntu / Debian este să configurați aplicația /var/www. În mod implicit, acesta poate fi scris numai prin root. Pentru ca funcția de configurare să funcționeze, acordă utilizatorului sudo deploy:
sudo chown deploy:deploy /var/www -R
Generați aplicația de șine în /var/www/. Dacă aveți deja o aplicație pe care doriți să o implementați, git cloneexecutați-o aici și apoi rulați bundle:
cd /var/www
rails new example --database=mysql
Prep Nginx.
sudo nano /etc/nginx/nginx.conf
Schimbați utilizatorul la deploy.
user deploy;
În httpsecțiunea de configurare, ar trebui să existe o linie care să comunice Nginx să încarce module inclusiv pasager. Dacă lipsește, îl puteți adăuga imediat după Virtual Host Configstitlu, dar înainte sites-enabled.
include /etc/nginx/conf.d/*.conf;
Editează / creează passenger.conffișierul.
sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
Spuneți pasagerului să utilizeze configurația noastră Rbenv. Poate conține o linie îndreptată către versiunea Ruby inclusă cu Passenger, trebuie doar să o ștergeți sau să o comentați.
passenger_ruby /home/deploy/.rbenv/shims/ruby;
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
Configurați o gazdă virtuală pentru a indica aplicația din /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
}
Reporniți Nginx.
sudo service nginx restart
În acest moment, aplicația dvs. este gata de a fi utilizată în modul de dezvoltare. Pentru a comuta la modul de producție, trebuie să reveniți la configurația Nginx și să schimbați rails_envsetarea la production.
Înainte de a trece la modul de producție, tot va trebui să setați baza de date de producție example_production, database.ymlși cheia secretă. Consultați un instrument precum Capistrano sau Mina pentru a accelera procesul de implementare a aplicației dvs. Este o practică bună să utilizați variabile ENV cu o bijuterie de genul dotenv, și să nu vă angajați parolele, cheile secrete și altele astfel în depozitul dvs. git.
Există mai multe servicii care oferă certificate SSL pentru domeniul dvs., multe sunt plătite și un cuplu sunt gratuite. Configurare SSL indiferent ce serviciu utilizați. Let's Encrypt este foarte ușor și gratuit. Let's Encrypt este o organizație non-profit susținută de mulți giganți tehnologici.
Rulați următoarele comenzi și urmați instrucțiunile.
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
Dacă accesați acum instanța dvs. Vultr folosind HTTPS, veți vedea un site web sigur.
Certificatul dvs. nou emis va expira și va trebui reînnoit periodic. Cel mai simplu mod de a face acest lucru este să configurați o lucrare cron.
sudo crontab -e
30 2 * * 1 /usr/bin/certbot renew
Ca o etapă finală, dar opțională, reporniți VM-ul și asigurați-vă că toate serviciile repornesc așa cum vă așteptați.
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe