रूबेव, रेल्स, मारियाबीडी, नेग्नेक्स, एसएसएल और पैसेंजर के साथ रूबी को स्थापित और कॉन्फ़िगर कैसे करें

रूबी ऑन रेल्स रूबी के लिए एक लोकप्रिय वेब फ्रेमवर्क है जिसे प्रोग्रामर की उत्पादकता बढ़ाने के लिए विकसित किया गया था। हालांकि, विभिन्न रत्नों और निर्भरताओं को एक साथ काम करने से कभी-कभी मुश्किल हो सकती है। यह मार्गदर्शिका आपको सामान्य रूप से उपयोग किए जाने वाले रत्नों और निर्भरताओं सहित एक पूर्ण उत्पादन-तैयार रेल वातावरण स्थापित करने में मदद करेगी।

आवश्यकताएँ

  • कम से कम 512 एमबी रैम (1024 एमबी पसंदीदा) के साथ वल्चर उदाहरण।
  • उबटन 17.04 चल रहा है।

इस गाइड में प्रयुक्त स्टैक

  • Nginx : एक तेज़ और शक्तिशाली वेब सर्वर। (क्रिया १.१०.३)
  • यात्री : एक ऐप सर्वर जो नग्नेक्स को आपके रूबी ऐप की सेवा में मदद करेगा। (क्रिया 1.5.1.8)
  • Rbenv : एक रूबी संस्करण प्रबंधक। (क्रिया १.१.१-२)
  • रूबी : (क्रिया 2.4.1)
  • MariaDB : MySQL सर्वर का एक खुला स्रोत शाखा (देखें 10.2)
  • एसएसएल सर्टिफिकेट फ्रॉम लेट एनक्रिप्ट

स्थापना

सूडो उपयोगकर्ता जोड़ें

ध्यान दें : इन सेवाओं में से किसी को भी रूट के रूप में स्थापित नहीं करने की अत्यधिक अनुशंसा की जाती है, क्योंकि आप खुद को एक हमले के लिए उजागर कर सकते हैं। एक उपयोगकर्ता deployया appउपयोगकर्ता को स्थापित करना एक सामान्य सम्मेलन है:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

अपडेट और अपग्रेड सिस्टम

सुनिश्चित करें कि आप अपने Ubuntu VM पर सभी नवीनतम पैकेज चला रहे हैं:

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
संस्करण

रूबी समुदाय Git को पसंद के SCM के रूप में उपयोग कर रहा है; लेकिन अतिरिक्त, मर्क्यूरियल या तोड़फोड़ की तरह, भी स्थापित किया जा सकता है:

sudo apt-get install -y git git-core
MySQL / MariaDB के लिए डेटाबेस ड्राइवर
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

कई लोकप्रिय रत्नों की आवश्यकता है जो देशी XML लिब की आवश्यकता है:

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

नवीनतम संस्करण के साथ नोड से आधिकारिक रिपॉजिटरी जोड़ें उबंटू रिपॉजिटरी के रूप में कुछ प्रमुख संस्करणों से पिछड़ जाते हैं:

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

SQLite और PostgreSQL के लिए डेटाबेस ड्राइवर

SQLite या PostgreSQL के लिए ड्राइवर स्थापित करें यदि आपको अन्य डेटाबेस से कनेक्ट करने की आवश्यकता है या एक साधारण, स्थानीय DB पसंद करना है:

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

उपकरण

उपयोगिता जो आम तौर पर एक ताजा उबंटू इंस्टॉल पर पूर्व-स्थापित नहीं होती है। अपनी पसंद का टेक्स्ट-एडिटर स्थापित करने के लिए स्वतंत्र महसूस करें:

sudo apt-get install -y iotop htop nano vim

MariaDB सर्वर स्थापित करें

MariaDB एक शक्तिशाली संबंधपरक SQL सर्वर है, जो MySQL के साथ पूरी तरह से संगत है। मारियाबीडी के नवीनतम संस्करण को स्थापित करने का सबसे आसान तरीका आधिकारिक रिपॉजिटरी का उपयोग करना है:

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 शेल में लॉगिन करें:

mysql -h localhost -u root -p 

नोट : \qबाहर निकलने के लिए उपयोग करें।


रेंबव और रूबी को स्थापित करें

Rbenv

गिट का उपयोग करके Rbenv स्थापित करें। यह सबसे सरल इंस्टॉल विधि है, और यह बाद में आसान अपडेट के लिए अनुमति देता है। यह भी स्थापित करें 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 और Ruby-build स्थापित है और शेल में उपलब्ध है:

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

पैसेंजर और नग्नेक्स

Apt के लिए PGP कुंजी और HTTPS समर्थन जोड़ें:

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

यात्री + Nginx मॉड्यूल स्थापित करें:

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

इस बिंदु पर इनका परीक्षण करने के लिए अपने डोमेन नाम या IP का उपयोग क��के अपने Vultr उदाहरण पर जाएं। यदि वे काम कर रहे हैं, तो आपका पृष्ठ डिफ़ॉल्ट Nginx स्वागत पृष्ठ दिखाएगा।

सेटअप रेल, अनुप्रयोग और यात्री कॉन्फ़िगर करें

बंडल और रेल स्थापित करें:

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

उबंटू / डेबियन सम्मेलन में अपने ऐप को सेटअप करना है /var/www। डिफ़ॉल्ट रूप से यह केवल जड़ से लिखने योग्य है। सेटअप को काम करने के लिए, sudo उपयोगकर्ता को स्वामित्व दें 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. Nginx को पुनरारंभ करें।

    sudo service nginx restart
    

इस बिंदु पर आपका एप्लिकेशन विकास मोड में उपयोग करने के लिए तैयार है। उत्पादन मोड पर स्विच करने के लिए आपको अपने Nginx कॉन्फ़िगरेशन पर वापस जाने और rails_envसेटिंग को बदलने की आवश्यकता है production

इससे पहले कि आप उत्पादन मोड में स्विच, आप अभी भी स्थापना के लिए अपने उत्पादन डेटाबेस की आवश्यकता होगी example_production, database.ymlऔर गुप्त कुंजी। अपने आवेदन परिनियोजन प्रक्रिया को तेज करने के लिए Capistrano या Mina जैसे टूल को देखें। एक मणि जैसे ईएनवी वैरिएबल का उपयोग करना एक अच्छा अभ्यास है dotenv, और आपके पासवर्ड, गुप्त कुंजी और इस तरह के आपके गिट रिपॉजिटरी के लिए प्रतिबद्ध नहीं हैं।

एसएसएल सेटअप करें

आपके डोमेन के लिए एसएसएल प्रमाणपत्र प्रदान करने वाली कई सेवाएँ हैं, कई भुगतान की जाती हैं और एक जोड़ी मुफ्त है। सेटअप SSL कोई फर्क नहीं पड़ता कि आप किस सेवा का उपयोग करते हैं। आइए Encrypt उपयोग करने के लिए बहुत आसान, और मुफ्त है। चलो एनक्रिप्ट एक गैर-लाभकारी संगठन है जो कई तकनीकी दिग्गजों द्वारा समर्थित है।

स्थापना

निम्न आदेश चलाएँ, और संकेतों का पालन करें।

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

यदि आप अब अपने Vultr उदाहरण का उपयोग करते हैं HTTPS, तो आप एक सुरक्षित वेबसाइट देखेंगे।

नवीकरण

आपका नया जारी किया गया प्रमाणपत्र समाप्त हो जाएगा, और समय-समय पर इसे नवीनीकृत करने की आवश्यकता होगी। ऐसा करने का सबसे आसान तरीका क्रोन जॉब सेट करना है।

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

एक अंतिम, लेकिन वैकल्पिक कदम के रूप में, अपने वीएम को रिबूट करें और सुनिश्चित करें कि सभी सेवाएं अपेक्षित रूप से पुनः आरंभ करें।



Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ