Kürzlich habe ich ein Ruby-Webprojekt übernommen, da ich noch nie mit Ruby und der damit verbundenen Webentwicklung in Berührung gekommen bin und die Dokumentation im Projekt fehlt, habe ich einige Umwege unternommen Bereitstellung des Projekts. Schließlich habe ich das Projekt erfolgreich bereitgestellt, indem ich auf mehrere Bereitstellungen der Ruby on Rails-Entwicklungsumgebung verwiesen und die Beziehung zwischen Edelsteinen/Bundlern in Ruby kennengelernt habe. Schreiben Sie es hier auf, es ist eine kleine Zusammenfassung und kann auch als Referenz für die Bereitstellungsumgebung dienen, wenn Sie gerade erst mit der Ruby-Webentwicklung beginnen.
Unser Projekt basiert auf Padrino. Wenn es sich um ein Rails-basiertes Projekt handelt, sollte die Bereitstellung ähnlich sein.
1. Ruby installieren
Da es möglicherweise mehrere Ruby-bezogene Projekte im System gibt und möglicherweise verschiedene Projekte für verschiedene Ruby entwickelt werden müssen Versionen Oder Tests, daher müssen möglicherweise mehrere Ruby-Versionen im System installiert werden. Hierzu sind entsprechende Tools zur Verwaltung vorhandener Versionen und zur Installation neuer Versionen erforderlich. Ich wähle hier rbenv, man kann aber auch den alten rvm verwenden.git clone git://github.com/sstephenson/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc exec $SHELL
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc exec $SHELL
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
wget -O ~/.rbenv/versions/ruby-2.1.5.tar.gz http://ruby.taobao.org/mirrors/ruby/2.1/ruby-2.1.5.tar.gz env RUBY_BUILD_MIRROR_URL=file:///home/ziven/.rbenv/versions/ruby-2.1.5.tar.gz# ~/.rbenv/bin/rbenv install 2.1.5
RUBY_BUILD_MIRROR_URL
2. Erforderliche Komponenten installieren
Da wir im Allgemeinen Bundler verwenden, um die für das Projekt benötigten Gems zu verwalten, muss Bundler hier installiert werden.gem sources --remove https://rubygems.org/ gem sources -a https://ruby.taobao.org/
gem install bundler
3 Bereitstellung
a. Klonen Sie den Web-Quellcode an den entsprechenden Speicherort
Es wird davon ausgegangen, dass der Quellcode nach dem Klonen in /opt/projectA abgelegt wirdb. Installieren Sie abhängige Gems
Im Stammverzeichnis des Projekts ausführen:bundle install
bundle install --deployment --without development test
c. Datenbankbezogene Migration
Da dieses Projekt auf Padrino basiert, muss es ausgeführt werden:padrino rake --envir db:migrate
bundle exec padrino rake --envir db:migrate
bundle exec padrino rake --envir seed
d.unicorn-Bereitstellung
Möglicherweise benötigen Sie das entsprechende Unicorn-Startskript Hier können Sie sich auf Ruby beziehen – Geschrieben von China's unicorn.rb. Hier weggelassen.bundle exec unicorn -E production -c unicorn.rb -D
4. Nginx-Installationskonfiguration
a. Nginx-Installation
Nginx kann auf die gleiche Weise wie allgemeine Linux-Software installiert werden. Es wird empfohlen, die Quellcode-Installationsmethode zu verwenden. Der Einfachheit halber werden wir es hier vorübergehend mit der Paketmanager-Installationsmethode installieren:sudo apt-get install nginx-full
b. nginx-Konfiguration
upstream myserver { server unix:/tmp/projectA.sock fail_timeout=0; } server { listen 7788; server_name localhost; client_max_body_size 10M; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } root /opt/projectA/web/public; try_files $uri $uri.html @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://myserver; } }
unix:/tmp/projectA.sock
Das Obige stellt die Bereitstellung von Ruby-Webumgebungen durch Nginx Unicorn vor, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.