GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment déployer Ruby + Passenger + Nginx sur CentOS Linux

Avant de commencer le didacticiel technique, passons d'abord en revue les technologies impliquées dans ce guide Ruby + Passenger + Nginx sur CentOS Linux.

Ruby est un langage open source agile et dynamique axé sur l'écriture et la lecture de code simples et naturelles, tout en conservant une syntaxe simple et élégante.

Passenger est un serveur d'applications utilisé pour héberger des applications écrites en langage Ruby. Afin de mettre vos applications ruby ​​en ligne, vous devez intégrer Passenger dans un serveur Web, dans notre cas notre bien-aimé Nginx.

Ce tutoriel est basé sur CentOS 6.x 64 bits mais il devrait également fonctionner sur RHEL 6.x.

Exigences

Installons quelques outils de développement dont nous pourrions avoir besoin

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'

Conditions requises pour le noyau et Selinux

Si SELinux est activé, alors Passenger nécessite un noyau>=2.6.39. Si votre noyau n'est pas assez récent, vous pouvez désactiver Selinux :

nano -w /etc/selinux/config

Ensuite, définissez SELINUX=disabled et redémarrez votre serveur.

Ou vous pouvez également mettre à jour votre noyau en utilisant dnf

dnf update kernel*

Comment puis-je installer Ruby + Passenger + Nginx sur CentOS ?

Installer Ruby, Passenger et intégrer Passenger dans Nginx n'est pas difficile du tout, mais vous devez suivre attentivement les étapes et analyser chaque erreur si vous voyez quelque chose.

Installer Ruby

Installons RVM et Ruby 2.2.2, exécutez les commandes suivantes :

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

Vérifiez votre installation Ruby

Vérifiez maintenant votre version de ruby, elle devrait être 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]

Installer le passager

gem install passenger

si cela ne fonctionne pas ou affiche une erreur, essayez ceci :

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

Installer Nginx + Module passager

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

Prenons Nginx dir à l'intérieur du passager et définissons la variable globale, car nous en aurons besoin pour ajouter la prise en charge des passagers dans Nginx.

Vérifiez quel est votre répertoire source Nginx dans l'installation du passager à l'aide de cette commande :

passenger-config about nginx-addon-dir

Ensuite, définissez-le comme vous le voyez ci-dessous, dans mon cas, le répertoire source était /src/nginx_module.

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

Assurez-vous d'avoir les bonnes permissions sur le répertoire /tmp, sinon le passager ne compilera pas :

chmod 1777 /tmp -v

Nous allons maintenant configurer Nginx et à la fin de la ligne de configuration nous ajouterons ceci

--add-module=$PASSENGER_NGINX_DIR

La commande complète ressemblerait à ceci. Assurez-vous d'ajouter vos propres modules Nginx requis et de configurer vos chemins pour qu'ils correspondent à vos propres besoins, ceci n'est qu'un exemple générique :

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

Lancez ensuite make et make install

make
make install

Configurer le module passager Nginx

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

Collez ceci à l'intérieur :

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;

Activez Rails et Passenger à l'intérieur de votre hôte virtuel Nginx

Ajoutez ces deux lignes dans votre configuration vhost :

passenger_enabled on;
rails_env production;

Cela devrait ressembler à ceci :

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

Redémarrez Nginx pour appliquer les modifications :

service nginx restart

Conclusion

C'est tout, à ce stade, Ruby, Passenger et Nginx devraient fonctionner pleinement. Veuillez nous faire savoir si vous rencontrez des erreurs ou des problèmes en suivant les étapes fournies dans ce didacticiel.

Comment déployer Ruby + Passenger + Nginx sur CentOS Linux dernière modification :7 février 2017 par Esteban Borges
Cent OS
  1. Comment debootstrap sur CentOS Linux

  2. Comment installer ruby ​​sur RHEL 8 / CentOS 8

  3. Comment sécuriser Nginx avec Letsencrypt sur Rocky Linux/Centos 8

  4. Comment installer Erlang sur Rocky Linux/Alma Linux/CentOS 8

  5. Comment installer Linux Dash sur CentOS 6

Comment installer Magento 2.1 sur CentOS 7

Comment installer Restyaboard sur CentOS 7

Comment mettre à niveau le noyau Linux sur CentOS 7

Comment migrer CentOS Linux vers Oracle Linux

Comment installer Nginx sur CentOS

Comment installer Webmin sur CentOS Linux