نحوه نصب و پیکربندی Ruby با Rbenv ، ریل ، MariaDB ، Nginx ، SSL و مسافر در اوبونتو 17.04

Ruby on Rails یک چارچوب وب محبوب برای Ruby است که برای افزایش بهره وری یک برنامه نویس ایجاد شده است. با این حال ، گرفتن سنگهای قیمتی و وابستگی های مختلف برای همکاری با یکدیگر ، گاه ممکن است مشکل پیدا کند. این راهنما به شما کمک می کند تا یک محیط ریل کامل آماده تولید را از جمله سنگهای متداول و وابستگی ها تنظیم کنید.

الزامات

  • نمونه Vultr با حداقل 512 مگابایت رم (ترجیح داده شده 1024 MB).
  • نمونه Vultr در حال اجرا اوبونتو 17.04

پشته مورد استفاده در این راهنما

  • Nginx : یک سرور وب سریع و قدرتمند. (نسخه 1.10.3)
  • مسافر : سرور برنامه که به Nginx در ارائه برنامه Ruby شما کمک می کند. (نسخه 1.5.1.8)
  • Rbenv : مدیر نسخه Ruby. (نسخه 1.1.1-2)
  • یاقوت : (نسخه 2.4.1)
  • MariaDB : یک شعبه منبع باز از سرور MySQL (نسخه 10.2)
  • گواهی SSL از Letry Encrypt

نصب و راه اندازی

کاربر سودو اضافه کنید

توجه : توصیه می شود که هیچ یک از این سرویس ها را به عنوان ریشه نصب نکنید ، زیرا ممکن است خود را در معرض حمله قرار دهید. راه‌اندازی کاربر deployیا appکاربری معمولی است:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

سیستم بروزرسانی و به روز رسانی

مطمئن شوید که آخرین نسخه های جدید را در Ubuntu VM خود اجرا می کنید:

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

Build Build System را نصب کنید

برای اینکه بتوانید Ruby را با استفاده از rbenv و سنگهای دیگر کامپایل کنید ، بسته های مختلفی باید نصب شوند. بسته به نسخه Ruby موردنیاز شما ، ممکن است برخی از بسته ها مورد نیاز نباشند.

گردآوری
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

اینها برای تهیه چندین جواهر مانند مسافر ضروری است:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
نسخه سازی

جامعه روبی از Git به عنوان SCM انتخاب استفاده می کند. اما موارد اضافی مانند Mercurial یا Subversion نیز قابل نصب هستند:

sudo apt-get install -y git git-core
درایورهای پایگاه داده برای MySQL / MariaDB
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
نوکوگییری

چندین جواهر محبوب که به نسخه XML بومی نیاز دارند:

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

مخازن رسمی Node را با جدیدترین نسخه اضافه کنید زیرا مخازن پیش فرض اوبونتو عقب مانده از چند نسخه اصلی است:

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

بسته های اختیاری

این بسته ها برای اجرای سیستم موردنیاز نیستند ، اما در صورت نیاز به استفاده از سنگهای خاص ، خوب است.

نمودارها و تصاویر

این کتابخانه ها ضروری نیستند و نمی توان آنها را پرش کرد ، مگر اینکه قصد استفاده از سنگهای دستکاری تصویر را داشته باشید. مانند Rmagick:

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

درایورهای پایگاه داده برای SQLite و PostgreSQL

در صورت نیاز به اتصال به پایگاه داده های دیگر یا ترجیح یک DB محلی ساده ، درایورهای SQLite یا PostgreSQL را نصب کنید:

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 سازگار است. ساده ترین راه برای نصب جدیدترین نسخه MariaDB استفاده از مخازن رسمی است:

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 و Ruby را نصب کنید

ربنف

Rbenv را با استفاده از git نصب کنید. این ساده ترین روش نصب است و بعداً امکان بروزرسانی آسان را فراهم می کند. همچنین نصب کنید ruby-build، وظیفه تهیه نسخه های مختلف Ruby را نیز بر عهده دارد:

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.

Rbenv و Ruby-ساخت را در پوسته موجود کنید. برای اطمینان از اینکه خطوط صادرات از قرار در آغاز از .bashrcفایل، که برای دستورات bash در غیر تعاملی مهم است، استفاده از این خطوط:

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کنید اگر شما نیاز به اجرای هرگونه دستور پوسته غیر تعاملی از برنامه Rails خود ، مانند تنظیمات کار cron توسط wheneverگوهر ، از همان نسخه Ruby به عنوان پوسته تعاملی شما استفاده می کند. این می تواند به جلوگیری از خطاهای عجیب کمک کند. این خط را به ~/.bash_profileپرونده اضافه کنید:

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

یاقوت

Ruby 2.4.1 را نصب کنید:

rbenv install 2.4.1

توجه : این روند بسته به منابع موجود در VM شما ممکن است 5-15 دقیقه طول بکشد و هیچ نوار پیشرفتی وجود ندارد.

Rbenv را در همه جا در دسترس قرار دهید.

rbenv global 2.4.1

مسافر و نگینکس

کلید PGP و پشتیبانی HTTPS را برای 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

مخزن مسافر را اضافه کنید:

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 را نصب کنید:

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

با استفاده از نام دامنه یا IP ، به نمونه Vultr خود مراجعه کنید تا در این مرحله این موارد را آزمایش کنید. اگر آنها در حال کار هستند ، صفحه شما صفحه پیش فرض استقبال Nginx را نشان می دهد.

راه حل های راه اندازی ، برنامه و پیکربندی مسافر

Bundler و Rails را نصب کنید:

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

کنوانسیون اوبونتو / دبیان قرار است برنامه خود را در آن تنظیم کنید /var/www. به طور پیش فرض فقط توسط root قابل نوشتن است. برای راه اندازی کار ، مالکیت را به کاربر سودو بدهید deploy:

sudo chown deploy:deploy /var/www -R

ایجاد برنامه ریل در /var/www/. اگر از قبل برنامه ای دارید که می خواهید استقرار دهید ، git cloneآن را در اینجا و سپس اجرا کنید bundle:

cd /var/www
rails new example --database=mysql
پیوند را برای اشاره به برنامه پیکربندی کنید.
  1. آماده سازی Nginx.

    sudo nano /etc/nginx/nginx.conf
    
  2. تغییر کاربر به deploy.

    user deploy;
    
  3. در httpبخش پیکربندی ، باید یک خط وجود داشته باشد که به Nginx می گوید ماژول ها از جمله مسافر را بارگیری کنید. در صورت عدم وجود ، می توانید بلافاصله بعد از 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. به مسافر بگویید که از تنظیم Rbenv ما استفاده کند. ممکن است حاوی یک خط باشد که به نسخه Ruby موجود در Passenger اشاره دارد ، فقط کافی است آن را حذف یا اظهار نظر کنید.

    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 را برای سرعت بخشیدن به روند استقرار برنامه خود بررسی کنید. استفاده از متغیرهای ENV با گوهر مانند یک عمل خوب است dotenvو گذرواژه‌ها ، کلیدهای مخفی و موارد دیگر را به مخزن git خود مرتکب نشوید.

راه اندازی SSL

چندین سرویس وجود دارد که دارای گواهینامه SSL برای دامنه شما هستند ، بسیاری از آنها پرداخت می شوند و یک زن و شوهر رایگان هستند. SSL مهم نیست از چه خدماتی استفاده می کنید. بیایید رمزگذاری بسیار آسان و رایگان استفاده شود. Let's 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، یک وب سایت ایمن را مشاهده خواهید کرد.

بازسازی

گواهینامه تازه صادر شده شما منقضی می شود و به صورت دوره ای تمدید می شود. ساده ترین راه برای انجام این کار ، تنظیم کار cron است.

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

به عنوان یک مرحله نهایی اما اختیاری ، مجدداً راه اندازی مجدد VM خود را انجام دهید و اطمینان حاصل کنید که همه سرویس ها طبق انتظارات مجدداً راه اندازی شوند.



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد