GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo implementar Ruby + Passenger + Nginx en CentOS Linux

Antes de comenzar con el tutorial técnico, primero revisemos las tecnologías involucradas en esta guía de Ruby + Passenger + Nginx en CentOS Linux.

Ruby es un lenguaje de código abierto ágil y dinámico centrado en la escritura y lectura de código fácil y natural, manteniendo una sintaxis simple agradable y elegante.

Passenger es un servidor de aplicaciones que se utiliza para aplicaciones de servidor escritas en lenguaje Ruby. Para poner sus aplicaciones ruby ​​en línea, debe integrar Passenger en un servidor web, en nuestro caso, nuestro amado Nginx.

Este tutorial se basa en CentOS 6.x 64 bits, pero también debería funcionar en RHEL 6.x.

Requisitos

Instalemos algunas herramientas de desarrollo que podamos necesitar

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'

Requisitos de Kernel y Selinux

Si SELinux está habilitado, Passenger requiere kernel>=2.6.39. Si su kernel no es lo suficientemente reciente, puede desactivar Selinux:

nano -w /etc/selinux/config

Luego configura SELINUX=deshabilitado y reinicie su servidor.

O también puede actualizar su kernel, usando dnf

dnf update kernel*

¿Cómo puedo instalar Ruby + Passenger + Nginx en CentOS?

Instalar Ruby, Passenger e integrar Passenger en Nginx no es nada difícil, pero debe seguir los pasos cuidadosamente y analizar cada error si ve algo.

Instalación de Rubí

Instalemos RVM y Ruby 2.2.2, ejecute los siguientes comandos:

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

Verifique su instalación de Ruby

Ahora revisa tu versión de Ruby, debería ser 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]

Instalar Pasajero

gem install passenger

si eso no funciona o muestra algún error, intente esto:

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

Instalación de Nginx + módulo de pasajeros

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

Tomemos el directorio Nginx dentro del pasajero y configuremos la variable global, ya que la necesitaremos para agregar soporte para pasajeros en Nginx.

Verifique cuál es su directorio fuente de Nginx dentro de la instalación del pasajero usando este comando:

passenger-config about nginx-addon-dir

Luego configúrelo como se ve a continuación, en mi caso, el directorio de origen era /src/nginx_module.

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

Asegúrese de tener los permisos correctos en el directorio /tmp, de lo contrario, el pasajero no compilará:

chmod 1777 /tmp -v

Ahora configuraremos Nginx y al final de la línea de configuración agregaremos esto

--add-module=$PASSENGER_NGINX_DIR

El comando completo se vería así. Asegúrese de agregar sus propios módulos Nginx requeridos y configure sus rutas para satisfacer sus propias necesidades, este es solo un ejemplo genérico:

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

Luego ejecute make y make install

make
make install

Configurar módulo Nginx para pasajeros

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

Pegue esto 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;

Habilite Rails y Passenger dentro de su host virtual Nginx

Agregue estas dos líneas dentro de su configuración de vhost:

passenger_enabled on;
rails_env production;

Debería verse así:

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

Reinicie Nginx para aplicar los cambios:

service nginx restart

Conclusión

Eso es todo, en este punto deberías tener Ruby, Passenger y Nginx funcionando completamente. Háganos saber si tiene algún error o problema siguiendo los pasos proporcionados en este tutorial.

Cómo implementar Ruby + Passenger + Nginx en CentOS Linux was last modified:febrero 7th, 2017 by Esteban Borges
Cent OS
  1. Cómo reiniciar en CentOS Linux

  2. Cómo instalar ruby ​​en RHEL 8 / CentOS 8

  3. Cómo asegurar Nginx con Letsencrypt en Rocky Linux/Centos 8

  4. Cómo instalar Erlang en Rocky Linux/Alma Linux/CentOS 8

  5. Cómo instalar Linux Dash en CentOS 6

Cómo instalar Magento 2.1 en CentOS 7

Cómo instalar Restyaboard en CentOS 7

Cómo actualizar el kernel de Linux en CentOS 7

Cómo migrar CentOS Linux a Oracle Linux

Cómo instalar Nginx en CentOS

Cómo instalar Webmin en CentOS Linux