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