GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come distribuire Ruby + Passenger + Nginx su CentOS Linux

Prima di iniziare il tutorial tecnico, esaminiamo innanzitutto le tecnologie coinvolte in questa guida Ruby + Passenger + Nginx su CentOS Linux.

Ruby è un linguaggio open source agile e dinamico incentrato sulla scrittura e lettura di codice facile e naturale, pur mantenendo una sintassi semplice piacevole ed elegante.

Il passeggero è un server di app utilizzato per server di app scritte in linguaggio Ruby. Per portare le tue app Ruby online, devi integrare Passenger in un server web, nel nostro caso il nostro amato Nginx.

Questo tutorial è basato su CentOS 6.x 64 bit ma dovrebbe funzionare anche su RHEL 6.x.

Requisiti

Installiamo alcuni strumenti di sviluppo di cui potremmo aver bisogno

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'

Requisiti kernel e Selinux

Se SELinux è abilitato, allora Passenger richiede kernel>=2.6.39. Se il tuo kernel non è abbastanza recente, allora puoi disabilitare Selinux:

nano -w /etc/selinux/config

Quindi imposta SELINUX=disabled e riavvia il server.

Oppure puoi aggiornare anche il tuo kernel, usando dnf

dnf update kernel*

Come posso installare Ruby + Passenger + Nginx su CentOS?

Installare Ruby, Passenger e integrare Passenger in Nginx non è affatto difficile, ma devi seguire attentamente i passaggi e analizzare ogni errore se vedi qualcosa.

Installazione di Ruby

Installiamo RVM e Ruby 2.2.2, eseguiamo i seguenti comandi:

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

Controlla la tua installazione di Ruby

Ora controlla la tua versione di Ruby, dovrebbe essere 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]

Installa Passeggero

gem install passenger

se non funziona o mostra errori, prova questo:

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

Installazione di Nginx + Modulo Passeggero

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

Prendiamo Nginx dir all'interno del passeggero e impostiamo la variabile globale, poiché ci servirà per aggiungere il supporto del passeggero in Nginx.

Controlla qual è la tua directory di origine Nginx all'interno dell'installazione del passeggero usando questo comando:

passenger-config about nginx-addon-dir

Quindi impostalo come vedi sotto, nel mio caso la directory di origine era /src/nginx_module.

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

Assicurati di avere i permessi corretti sulla directory /tmp, altrimenti il ​​passeggero non compilerà:

chmod 1777 /tmp -v

Ora configureremo Nginx e alla fine della riga di configurazione lo aggiungeremo

--add-module=$PASSENGER_NGINX_DIR

Il comando completo sarebbe simile a questo. Assicurati di aggiungere i tuoi moduli Nginx richiesti e di configurare i tuoi percorsi in base alle tue esigenze, questo è solo un esempio generico:

./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

Quindi esegui make e make install

make
make install

Configura il modulo Passenger Nginx

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

Incollalo dentro:

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;

Abilita Rails e Passenger all'interno del tuo host virtuale Nginx

Aggiungi queste due righe all'interno della tua configurazione vhost:

passenger_enabled on;
rails_env production;

Dovrebbe assomigliare a questo:

### 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;

Riavvia Nginx per applicare le modifiche:

service nginx restart

Conclusione

Questo è tutto, a questo punto dovresti avere Ruby, Passenger e Nginx completamente funzionanti. Facci sapere se riscontri errori o problemi seguendo i passaggi forniti in questo tutorial.

Come distribuire Ruby + Passenger + Nginx su CentOS Linux Ultima modifica:7 febbraio 2017 da Esteban Borges
Cent OS
  1. Come eseguire il debootstrap su CentOS Linux

  2. Come installare Ruby su RHEL 8 / CentOS 8

  3. Come proteggere Nginx con Letsencrypt su Rocky Linux/Centos 8

  4. Come installare Erlang su Rocky Linux/Alma Linux/CentOS 8

  5. Come installare Linux Dash su CentOS 6

Come installare Magento 2.1 su CentOS 7

Come installare Restyaboard su CentOS 7

Come aggiornare il kernel Linux su CentOS 7

Come migrare CentOS Linux su Oracle Linux

Come installare Nginx su CentOS

Come installare Webmin su CentOS Linux