繁体   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