Bevor wir mit dem technischen Tutorial beginnen, wollen wir uns zunächst die Technologien ansehen, die in diesem Ruby + Passenger + Nginx-Leitfaden für CentOS Linux enthalten sind.
Ruby ist eine agile, dynamische Open-Source-Sprache, die sich auf einfaches und natürliches Schreiben und Lesen von Code konzentriert und gleichzeitig eine schöne und elegante einfache Syntax beibehält.
Passenger ist ein App-Server, der zum Servern von Apps verwendet wird, die in Ruby-Sprache geschrieben sind. Um Ihre Ruby-Apps online zu bringen, müssen Sie Passenger in einen Webserver integrieren, in unserem Fall unser geliebtes Nginx.
Dieses Tutorial basiert auf CentOS 6.x 64 Bit, sollte aber auch auf RHEL 6.x funktionieren.
Anforderungen
Lassen Sie uns einige Entwicklungstools installieren, die wir möglicherweise benötigen
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'
Kernel- und Selinux-Anforderungen
Wenn SELinux aktiviert ist, erfordert Passenger Kernel>=2.6.39. Wenn Ihr Kernel nicht aktuell genug ist, können Sie Selinux deaktivieren:
nano -w /etc/selinux/config
Setzen Sie dann SELINUX=disabled und starten Sie Ihren Server neu.
Oder Sie können auch Ihren Kernel aktualisieren, indem Sie dnf
verwendendnf update kernel*
Wie kann ich Ruby + Passenger + Nginx auf CentOS installieren?
Die Installation von Ruby, Passenger und die Integration von Passenger in Nginx ist überhaupt nicht schwer, aber Sie müssen die Schritte sorgfältig befolgen und jeden Fehler analysieren, wenn Sie etwas sehen.
Ruby installieren
Lassen Sie uns RVM und Ruby 2.2.2 installieren, führen Sie die folgenden Befehle aus:
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
Überprüfen Sie Ihre Ruby-Installation
Überprüfen Sie nun Ihre Ruby-Version, sie sollte 2.2.2 sein
[example@unixlinux.online:~]which ruby /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby [example@unixlinux.online:~]ruby --version ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
Passagier installieren
gem install passenger
Wenn das nicht funktioniert oder einen Fehler anzeigt, versuchen Sie Folgendes:
/usr/local/rvm/rubies/ruby-2.2.2/bin/gem install passenger
Installieren von Nginx + Passagiermodul
wget http://nginx.org/download/nginx-1.11.6.tar.gz tar -xvpzf nginx-1.11.6.tar.gz cd nginx-1.11.6
Lassen Sie uns Nginx-Verzeichnis innerhalb von Passenger greifen und die globale Variable festlegen, da wir dies benötigen, um Passenger-Unterstützung in Nginx hinzuzufügen.
Überprüfen Sie mit diesem Befehl, was Ihr Nginx-Quellverzeichnis in der Passagierinstallation ist:
passenger-config about nginx-addon-dir
Stellen Sie es dann so ein, wie Sie unten sehen, in meinem Fall war das Quellverzeichnis /src/nginx_module.
PASSENGER_NGINX_DIR=`passenger-config --root`/src/nginx_module
Stellen Sie sicher, dass Sie die richtigen Berechtigungen für das /tmp-Verzeichnis haben, sonst wird Passenger nicht kompilieren:
chmod 1777 /tmp -v
Wir werden jetzt Nginx konfigurieren und am Ende der Konfigurationszeile dies hinzufügen
--add-module=$PASSENGER_NGINX_DIR
Der vollständige Befehl würde so aussehen. Stellen Sie sicher, dass Sie Ihre eigenen erforderlichen Nginx-Module hinzufügen und Ihre Pfade so konfigurieren, dass sie Ihren eigenen Anforderungen entsprechen. Dies ist nur ein allgemeines Beispiel:
./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
Führen Sie dann make und make install
ausmake make install
Passagier-Nginx-Modul konfigurieren
nano -w /etc/nginx/conf.d/passenger.conf
Fügen Sie Folgendes ein:
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;
Aktivieren Sie Rails und Passenger in Ihrem virtuellen Nginx-Host
Fügen Sie diese zwei Zeilen in Ihre vhost-Konfiguration ein:
passenger_enabled on; rails_env production;
Es sollte so aussehen:
### 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;
Starten Sie Nginx neu, um die Änderungen zu übernehmen:
service nginx restart
Schlussfolgerung
Das ist alles, an diesem Punkt sollten Sie Ruby, Passenger und Nginx voll funktionsfähig haben. Bitte teilen Sie uns mit, wenn Sie Fehler oder Probleme mit den Schritten in diesem Tutorial haben.
How to Deploy Ruby + Passenger + Nginx on CentOS Linux wurde zuletzt geändert:7. Februar 2017 von Esteban Borges