GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nasadit Ruby + Passenger + Nginx na CentOS Linux

Než se pustíme do technického tutoriálu, podívejme se nejprve na technologie zahrnuté v tomto průvodci Ruby + Passenger + Nginx na CentOS Linuxu.

Ruby je agilní, dynamický jazyk s otevřeným zdrojovým kódem zaměřený na snadné a přirozené psaní a čtení kódu při zachování pěkné a elegantní jednoduché syntaxe.

Passenger je aplikační server, který se používá k serveru aplikací napsaných v jazyce Ruby. Abyste mohli dostat své rubínové aplikace online, musíte Passenger integrovat do webového serveru, v našem případě do našeho milovaného Nginx.

Tento tutoriál je založen na CentOS 6.x 64 bitů, ale měl by fungovat i na RHEL 6.x.

Požadavky

Pojďme nainstalovat některé vývojářské nástroje, které můžeme potřebovat

yum install gcc g++ make automake autoconf curl curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util pygpgme
yum groupinstall 'Development Tools'

Požadavky na jádro a Selinux

Pokud je povolen SELinux, pak Passenger vyžaduje jádro>=2.6.39. Pokud vaše jádro není dostatečně aktuální, můžete Selinux zakázat:

nano -w /etc/selinux/config

Poté nastavte SELINUX=disabled a restartujte server.

Nebo můžete také aktualizovat své jádro pomocí dnf

dnf update kernel*

Jak mohu nainstalovat Ruby + Passenger + Nginx na CentOS?

Instalace Ruby, Passenger a integrace Passenger do Nginx není vůbec obtížná, ale musíte pečlivě postupovat podle kroků a analyzovat každou chybu, pokud něco uvidíte.

Instalace Ruby

Pojďme nainstalovat RVM a Ruby 2.2.2, spusťte následující příkazy:

curl -L https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm install 2.2.2
rvm use 2.2.2 --default

Zkontrolujte instalaci Ruby

Nyní zkontrolujte verzi ruby, měla by být 2.2.2

[[email protected]:~]which ruby
/usr/local/rvm/rubies/ruby-2.2.2/bin/ruby
[[email protected]:~]ruby --version
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]

Instalovat cestujícího

gem install passenger

pokud to nefunguje nebo ukazuje nějakou chybu, zkuste toto:

/usr/local/rvm/rubies/ruby-2.2.2/bin/gem install passenger

Instalace Nginx + Passenger Module

wget http://nginx.org/download/nginx-1.11.6.tar.gz
tar -xvpzf nginx-1.11.6.tar.gz
cd nginx-1.11.6

Vezmeme Nginx dir uvnitř cestujícího a nastavíme globální proměnnou, protože to budeme potřebovat k přidání podpory cestujících do Nginx.

Zkontrolujte, jaký je váš zdrojový adresář Nginx uvnitř instalace pro cestující pomocí tohoto příkazu:

passenger-config about nginx-addon-dir

Poté jej nastavte, jak vidíte níže, v mém případě byl zdrojový adresář /src/nginx_module.

PASSENGER_NGINX_DIR=`passenger-config --root`/src/nginx_module

Ujistěte se, že máte správná oprávnění k adresáři /tmp, jinak se cestující nezkompiluje:

chmod 1777 /tmp -v

Nyní nakonfigurujeme Nginx a na konec konfiguračního řádku přidáme toto

--add-module=$PASSENGER_NGINX_DIR

Úplný příkaz by vypadal takto. Ujistěte se, že přidáváte své vlastní požadované moduly Nginx a konfigurujete své cesty tak, aby odpovídaly vašim vlastním potřebám, toto je pouze obecný příklad:

./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_geoip_module --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --add-module=$PASSENGER_NGINX_DIR

Poté spusťte make a make install

make
make install

Konfigurace modulu Passenger Nginx

nano -w /etc/nginx/conf.d/passenger.conf

Vložte toto dovnitř:

passenger_root /usr/local/rvm/gems/ruby-2.2.2/gems/passenger-5.0.30;
passenger_ruby /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;

Povolte Rails a Passenger uvnitř vašeho virtuálního hostitele Nginx

Přidejte tyto dva řádky do konfigurace vhost:

passenger_enabled on;
rails_env production;

Mělo by to vypadat takto:

### yourdomain.com

server {
access_log off;
log_not_found off;
error_log  logs/yourdomain.com-error_log info;

        listen       80;
        server_name  yourdomain.com www.yourdomain.com;

	# activate passenger & rails support
	passenger_enabled on;
    	rails_env production;

Chcete-li použít změny, restartujte Nginx:

service nginx restart

Závěr

To je vše, v tomto okamžiku byste měli mít Ruby, Passenger a Nginx plně funkční. Pokud máte nějaké chyby nebo problémy, dejte nám prosím vědět podle kroků uvedených v tomto návodu.

Jak nasadit Ruby + Passenger + Nginx na CentOS Linux byl naposledy upraven:7. února 2017 Esteban Borges
Cent OS
  1. Jak debootstrap na CentOS Linux

  2. Jak zabezpečit Nginx pomocí Letsencrypt na Rocky Linux/Centos 8

  3. Jak nainstalovat Erlang na Rocky Linux/Alma Linux/CentOS 8

  1. Jak nainstalovat ruby ​​na RHEL 8 / CentOS 8

  2. Jak nainstalovat VirtualBox na CentOS 8 Linux

  3. Jak nainstalovat Linux Dash na CentOS 6

  1. Jak nainstalovat Skype na CentOS 8 Linux

  2. Jak nainstalovat Nginx na CentOS 7

  3. Jak nasadit Mattermost na CentOS 7