Ubuntu 17.04 Üzerinde Ruby, Rbenv, Rails, MariaDB, Nginx, SSL ve Yolcu ile Kurulumu ve Konfigürasyonu

Ruby on Rails, bir programcının verimliliğini artırmak için geliştirilen Ruby için popüler bir web çerçevesidir. Bununla birlikte, çeşitli mücevherlerin ve bağımlılıkların birlikte çalışması bazen zor olabilir. Bu kılavuz, yaygın olarak kullanılan taşlar ve bağımlılıklar dahil, üretime hazır eksiksiz bir Rails ortamı kurmanıza yardımcı olacaktır.

Gereksinimler

  • En az 512 MB RAM'e sahip Vultr örneği (1024 MB tercih edilir).
  • Ubuntu 17.04 çalıştıran Vultr örneği.

Bu Kılavuzda Kullanılan Yığın

  • Nginx : hızlı ve güçlü bir web sunucusu. (ver 1.10.3)
  • Yolcu : Nginx'in Ruby uygulamanıza hizmet etmesine yardımcı olacak bir uygulama sunucusu. (sürüm 1.5.1.8)
  • Rbenv : Ruby sürüm yöneticisi. (sürüm 1.1.1-2)
  • Ruby : (sürüm 2.4.1)
  • MariaDB : MySQL sunucusunun açık kaynaklı bir kolu (sürüm 10.2)
  • Let's Encrypt'ten SSL sertifikası

Kurulum

Sudo Kullanıcısı Ekle

Not : Kendinizi bir saldırıya maruz bırakabileceğiniz için bu hizmetlerin hiçbirini kök olarak yüklememeniz önemle tavsiye edilir. Bir kullanıcı deployveya appkullanıcı kurmak yaygın bir kuraldır:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Güncelleme ve Yükseltme Sistemi

Ubuntu VM'nizde en son paketleri çalıştırdığınızdan emin olun:

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

Derleme Sistemini Yükle

Ruby'yi rbenv ve diğer mücevherleri kullanarak derleyebilmek için çeşitli paketlerin kurulması gerekir. İhtiyacınız olan Ruby sürümüne bağlı olarak, bazı paketlere gerek olmayabilir.

Derleme
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 desteği paketleri

Bunlar Yolcu gibi çeşitli mücevherleri derlemek için gereklidir:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Sürüm

Ruby topluluğu Git'i bir SCM olarak kullanıyor; ancak Mercurial veya Subversion gibi ekler de kurulabilir:

sudo apt-get install -y git git-core
MySQL / MariaDB için Veritabanı Sürücüleri
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

Yerel XML kütüphaneleri gerektiren birkaç popüler mücevher için gereklidir:

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

Varsayılan Ubuntu depoları birkaç büyük sürümün gerisinde kalmaya meyillidir: Düğümden en son sürümü içeren resmi depoları ekleyin:

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

İsteğe Bağlı Paketler

Bu paketler sistemin çalışması için gerekli değildir, ancak belirli mücevherleri kullanmanız gerekiyorsa sahip olmak iyidir.

Grafikler ve Görüntüler

Bu kütüphaneler gerekli değildir ve görüntü düzenleme mücevherleri kullanmayı planlamıyorsanız atlanabilir; Rmagick gibi:

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

SQLite ve PostgreSQL için Veritabanı Sürücüleri

Diğer veritabanlarına bağlanmanız veya basit, yerel bir DB'yi tercih etmeniz gerekiyorsa SQLite veya PostgreSQL için sürücüleri yükleyin:

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

Araçlar

Normalde yeni bir Ubuntu kurulumunda önceden yüklenmiş olarak gelmeyen yardımcı programlar. Seçtiğiniz metin düzenleyicinizi kurmaktan çekinmeyin:

sudo apt-get install -y iotop htop nano vim

MariaDB Sunucusunu Yükleyin

MariaDB, MySQL ile tamamen uyumlu güçlü bir ilişkisel SQL sunucusudur. MariaDB'nin en son sürümünü kurmanın en kolay yolu resmi depoları kullanmaktır:

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

İstemleri izleyin ve bir root parolası belirleyin. Ardından, yeni kurulumunuza erişebildiğinizi doğrulayın:

mysql -V 

Şuna benzer bir çizgi görüntüler:

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

MySQL kabuğuna giriş yapın:

mysql -h localhost -u root -p 

Not : \qçıkmak için kullanın .


Rbenv ve Ruby'yi yükleyin

Rbenv

Git kullanarak Rbenv'i kurun. Bu, en basit yükleme yöntemidir ve daha sonra kolay güncellemelere izin verir. Ayrıca yükleyin ruby-build, aslında Ruby'nin farklı sürümlerini derlemekten sorumludur:

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

Not : Basitçe cd ~/.rbenvve güncellemeniz gerektiğinde git pull.

Rbenv ve Ruby-build'in kabukta kullanılabilir olmasını sağlayın. İhracat hatları takılı olsun emin olmak için başında bir .bashrcinteraktif olmayan bash komutları için önemli olan dosyanın, bu satırları kullanın:

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 ve Ruby-build'in kurulu olup olmadığını ve kabukta kullanılabilir olup olmadığını kontrol edin:

rbenv install --list

Eğer rbenvtanınmayan, çıkış yapıp kabuk içine tekrar giriş yapın.

Bir ~/.bash_profiledosya oluşturun ve dosyayı kaynağınıza yönlendirin ~/.bashrc. wheneverGem tarafından ayarlanan cron işleri gibi Rails uygulamanızdan etkileşimli olmayan kabuk komutlarını çalıştırmanız gerekiyorsa, etkileşimli kabuğunuzla aynı Ruby sürümünü kullanır. Bu, garip hataları önlemeye yardımcı olabilir. Bu satırı ~/.bash_profiledosyaya ekleyin :

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

Yakut

Ruby 2.4.1'i yükleyin:

rbenv install 2.4.1

Not : Bu işlem sanal makinenizdeki kaynaklara bağlı olarak 5-15 dakika sürebilir ve ilerleme çubuğu yoktur.

Rbenv'i her yerde kullanılabilir hale getirin.

rbenv global 2.4.1

Yolcu ve Nginx

Apt için PGP anahtarını ve HTTPS desteğini ekleyin:

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

Yolcu deposunu ekleyin:

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

Passenger + Nginx modüllerini takın:

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

Bu noktada bunları test etmek için alan adını veya IP'sini kullanarak Vultr örneğinizi ziyaret edin. Çalışıyorlarsa, sayfanızda varsayılan Nginx hoş geldiniz sayfası gösterilir.

Rayları, Uygulamayı Kurun ve Yolcuyu Yapılandırın

Bundler'ı ve Rayları Kurun:

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

Ubuntu / Debian kuralı uygulamanızı kurmaktır /var/www. Varsayılan olarak yalnızca kök tarafından yazılabilir. Kurulumun çalışması için sudo kullanıcısına sahiplik verin deploy:

sudo chown deploy:deploy /var/www -R

Raylar uygulamasını oluşturun /var/www/. Zaten dağıtmak istediğiniz bir uygulamanız varsa, git cloneburada ve sonra çalıştırın bundle:

cd /var/www
rails new example --database=mysql
Yolcu uygulamasını uygulamaya yönlendirecek şekilde yapılandırın.
  1. Hazırlık Nginx.

    sudo nano /etc/nginx/nginx.conf
    
  2. Kullanıcı olarak değiştir deploy.

    user deploy;
    
  3. Gelen httpconfig bölümünde, yolcu dahil olmak üzere yük modülleri Nginx söyleyen bir çizgi olmalıdır. Eksikse, Virtual Host Configsbaşlıktan hemen sonra , ancak önce ekleyebilirsiniz sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. passenger.confDosyayı düzenleyin / oluşturun .

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Yolcuya Rbenv kurulumumuzu kullanmasını söyleyin. Yolcu ile birlikte verilen Ruby sürümüne işaret eden bir satır içerebilir, sadece silin veya yorum yapın.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Uygulamayı işaret edecek sanal ana bilgisayarı ayarlayın /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. Nginx'i yeniden başlatın.

    sudo service nginx restart
    

Bu noktada uygulamanız geliştirme modunda kullanılmaya hazırdır. Üretim moduna geçmek için Nginx yapılandırmanıza geri dönmeniz ve rails_envayarı olarak değiştirmeniz gerekir production.

Eğer üretim moduna önce, kurulumunu hâlâ üretim veritabanı gerekecek example_production, database.ymlve gizli anahtarı. Uygulama dağıtım işleminizi hızlandırmak için Capistrano veya Mina gibi bir araca göz atın. ENV değişkenlerini değerli taşlarla kullanmak iyi bir uygulamadır dotenvve şifrelerinizi, gizli anahtarlarınızı ve benzerlerini git deponuzda kullanmayın.

SSL kurulumu

Alanınız için SSL sertifikaları sunan birden fazla hizmet var, birçoğu ücretli ve bir çift ücretsiz. Hangi hizmeti kullanırsanız kullanın SSL'yi kurun. Şifreleyelim , kullanımı çok kolay ve ücretsizdir. Let's Encrypt, birçok teknoloji devi tarafından desteklenen kar amacı gütmeyen bir kuruluştur.

Kurulum

Aşağıdaki komutları çalıştırın ve komutları izleyin.

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

Şimdi kullanarak Vultr örneğinize HTTPSgiderseniz, güvenli bir web sitesi göreceksiniz.

yenilenme

Yeni verilen sertifikanızın süresi dolar ve periyodik olarak yenilenmesi gerekir. Bunu yapmanın en kolay yolu bir cron işi kurmaktır.

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

Son fakat isteğe bağlı bir adım olarak VM'nizi yeniden başlatın ve tüm hizmetlerin beklendiği gibi yeniden başlatıldığından emin olun.



Leave a Comment

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

GitBucket Ubuntu 16.04 Kurulumu

GitBucket Ubuntu 16.04 Kurulumu

Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,

Linuxta TeamTalk Sunucusu Kurma

Linuxta TeamTalk Sunucusu Kurma

TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Vultr, yeni bir örnek oluşturduktan sonra SSH anahtarlarını önceden yüklemenizi sağlayan bir özellik sağlar. Bu, sunucu kök kullanıcısına erişmenizi sağlar, ancak

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

SSH üzerinden kök girişine izin vermek, teknoloji endüstrisinde genellikle zayıf bir güvenlik uygulaması olarak kabul edilir. Bunun yerine, hassas yönetim gerçekleştirebilirsiniz

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?