簡體   English   中英

如何啟動運行Phusion Passenger的服務器

[英]How to start server running Phusion Passenger

我購買了一些具有SSH訪問權限的托管空間。 現在,我想部署一個Ruby on Rails應用程序,該應用程序可以在我創建的一個子域中本地工作,我們稱之為subdomain.mywebsite.com。

我已經通過公共密鑰設置了SSH訪問權限,在服務器上安裝了Ruby on Rails和Passenger,並按照網站上提供的步驟以及通過教程在本地安裝了Capistrano。 當我運行cap production deploy ,整個站點都被上載到生產服務器,並且通過SSH,我可以看到當前的,發行版,回購和共享文件夾。 不幸的是,當我轉到subdomain.mywebsite.com時,出現了404-not found錯誤。

我對設置自己的服務器不熟悉,現在不知道該怎么辦。 我發現的所有教程都沒有說明如何從此處繼續,並且希望閱讀此指南的人可以幫助我真正地訪問該網站。

Deploy.rb:

require 'capistrano'
set :stages, ["staging", "production"]
set :default_stage, "staging"
set :application, 'chiachia_store' # application name
set :repo_url, 'git@github.com:erooijak/chiachia_store.git' # your repo url
set :deploy_to, '/home/erooijak/chiachia.erooijak.simple-webhosting.eu'
set :user, "root"
set :scm, :git
set :branch, 'master'
set :keep_releases, 5
ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }
set :format, :pretty
set :log_level, :debug
set :pty, true
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}
set :stage, :production
role :app, %w{root@213.159.6.126}
role :web, %w{root@213.159.6.126}
role :db, %w{root@213.159.6.126}
set :puma_rackup, -> { File.join(current_path, 'config.ru') }
set :puma_state, "#{shared_path}/tmp/pids/puma.state"
namespace :deploy do

desc 'Restart application...'
task :restart do
  on roles(:app), in: :sequence, wait: 5 do
    # Your restart mechanism here, for example:
    execute :touch, release_path.join('tmp/restart.txt')
  end
 end

 desc 'Copy database.yml to correct location.'
 task :copy_databaseyml do
   on roles(:app) do
     execute :cp ,'-r', shared_path.join('config/database.yml'), 
       release_path.join('config/database.yml')
   end
 end

after :publishing, :restart

after :restart, :copy_databaseyml
end

的apache.conf:

LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so passengerRoot /usr/local/rvm/gems/ruby-1.9.3-p547/gems/passenger-4.0.49 PassengerRuby / usr / bin / ruby

  ServerName www.chiachia.erooijak.simple-webhosting.eu
  # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /home/erooijak/chiachia.erooijak.simple-webhosting.eu/current/public
  <Directory /home/erooijak/chiachia.erooijak.simple-webhosting.eu/current/public>
     # This relaxes Apache security settings.
     AllowOverride all
     # MultiViews must be turned off.
     Options -MultiViews
     # Uncomment this if you're on Apache >= 2.4
     #Require all granted
  </Directory>
</VirtualHost>

運行此命令的效果如下:

Apache Passenger正在運行...

這樣就行了。 不幸的是,我在所有域上都收到404錯誤,PHP應用程序保持正常運行。

passenger.3000.log具有以下信息:

我們為什么不從頭開始。

閱讀您的最新評論后,您想要的是能夠在同一服務器上部署多個Rails應用程序。

有許多選項可以執行此操作,並且根據您選擇的內容,配置將有很大不同。 有一個很好的SO答案,涵蓋了您可能想閱讀的基礎知識:

Ruby on Rails服務器選項

我習慣的堆棧是Nginx / capistrano / unicorn,但這取決於個人喜好和部署內容的性質。

Apache / Phusion乘客

首先要做的是為您的域配置apache。 旅客的文件是一個很好的起點。

您甚至可以在同一文檔中找到有關如何使用Phusion passenger部署Rails> = 3.X應用程序的完整指南。

如果您認真按照說明進行操作,則應該在不使用puma的情況下啟動並運行您的應用。 他們甚至還提供Capistrano食譜供您使用。

美洲獅

在此階段,除非您的應用程序需要高並發性,否則不需要puma。 Phusion Passenger本身就是一個應用程序服務器,無需在其后面添加puma。 如果出於某種原因確實需要它,那么最好改用Nginx / Puma。

希望我給您的參考資料能使您有所了解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM