我正在尝试使用apache2和mod_rails(Phusion Passenger)在ubuntu10.10上的rails服务器上设置ruby.
我已经安装了ruby 1.9.2-p0和rails 3.0.8,并使用passenger-install-apache2-module和passenger gem(v3.0.7)安装了Passenger.
然后它告诉我在我的Apache配置文件中添加3行.所以我将这些行添加到'/etc/apache2/apache2.conf'中:
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/gems/1.9.1/gems/passenger-3.0.7
PassengerRuby /usr/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)
我编辑了我的'/etc/apache2/httpd.conf'并添加了:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName 192.168.0.2
DocumentRoot /var/www/webop/public
<Directory /var/www/webop/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我还发现/usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/ext/apache2/中的文件mod_passenger.so实际上不存在,其名称为mod_passenger.c.但我没有从中得到任何错误.
服务器只能通过LAN访问.当我访问服务器时,我看到我的应用程序的公共文件夹中的所有文件和目录,但应用程序本身没有开始.
当我重新启动apache它告诉我mod_rails已经加载所以我猜这个乘客正在运行,但我无法弄清楚为什么它不启动我的应用程序!
提前致谢!
我从mod_rails获得ruby实例变为"流氓" - 这些进程不再列在乘客状态并使用100%cpu.
除了安装god/monit来杀死实例,有人能给我一些关于如何防止这种情况的建议吗?我无法在日志中找到任何有帮助的内容.
我从一些书中读到,Phusion Passenger是轻松实现Ruby on Rails部署的答案.但我的朋友说,首先是Apache +一堆Mongrels,然后是lighttpd,然后是nginx,现在是Passenger,它似乎无穷无尽......
他还说他使用了使用Passenger的dreamhost,有时他看到他的请求没有被处理.
所以我想知道Passenger是否是RoR部署的最终答案?你使用它并使用"ab"命令来测试网站是否做得很好?
我正在使用Passenger设置服务器以在Fedora 12上运行Ruby on Rails应用程序.
我正处于安装Passenger的阶段,按规定进行设置,但在重新启动Apache时出现以下错误:
[Wed Jan 13 15:41:38 2010] [notice] caught SIGTERM, shutting down
[Wed Jan 13 15:41:40 2010] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Wed Jan 13 15:41:40 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Jan 13 15:41:40 2010] [error] *** Passenger could not be initialized because of this error: Cannot create FIFO file /tmp/passenger.25235/.guard: Permission denied (13)
[Wed Jan 13 15:41:40 2010] [notice] Digest: generating secret for digest authentication ...
[Wed Jan 13 …Run Code Online (Sandbox Code Playgroud) 有没有人知道在运行带有Passenger/mod_rails的Rails应用程序时限制文件上载大小的好方法.请求应立即被拒绝,以便文件不会传输到服务器.
到目前为止我找到的解决方案都描述了如何修补Mongrel以实现限制,但我必须使用乘客使用此应用程序.
Unicorn拥有OobGC机架中间件,可用于GC.start在一定数量的请求之后运行.
Phusion Passenger中有类似的东西吗?
我没有将我的应用程序部署到运行带有mod_rails的ubuntu的服务器上.在服务器上运行webrick看起来很好,我可以保存文件,没问题.但是通过nginx运行应用程序,当我尝试保存文件时出现此错误.
[paperclip]处理时收到错误:#[paperclip]处理时收到错误:#R
我有使用rails构建的不同网站/应用程序,它们具有不同的域名.问题是我想从一个有Nginx /乘客的服务器上为他们服务.我尝试了一些技巧,但我不能让它们工作,基本上,我对此的信息很少.
所以,我可以在不同的端口上提供不同的网站/应用程序.但是,如果他们来自aaa.com,如果他们来自bbb.com,我怎么能让人们看到应用程序"AAA"并看到应用程序"BBB"?
我已经搜索过该网站,但找不到任何合适的信息.由于周围总有一些专家,我敢肯定其中一个人确切地知道我在寻找什么:-)
我们是一个平衡的系统:
Machine 1: HAProxy load balancer
Machine 2 & 3: Apache mod_rails and (of course) our Rails applications
Run Code Online (Sandbox Code Playgroud)
那些是我们能够使用monit(或其他监控工具)监控所有Mongrel流程的日子.
有没有办法用monit(或其他工具)轻松,巧妙地监控乘客流程?如何动态获取正在运行的进程的所有pid并将其传递给监视?
马特
我在Debian服务器上设置了mod_rails但不知何故搞砸了(不是我:P).
gem install passenger
Building native extensions. This could take a while...
ERROR: Error installing passenger:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb
creating Makefile
make
sh: make: command not found
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/fastthread-1.0.7 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/fastthread-1.0.7/ext/fastthread/gem_make.out
Run Code Online (Sandbox Code Playgroud)
安装宝石:
gem -v
1.3.5
Run Code Online (Sandbox Code Playgroud)
红宝石也很好:
ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
Run Code Online (Sandbox Code Playgroud) 我有一个Sinatra应用程序,我在dev/stage中使用Thin运行,现在是时候进入生产了我开始检查如何在apache中与乘客一起服务.
我主要是跟着
http://recipes.sinatrarb.com/p/deployment/apache_with_passenger http://www.rabblemedia.net/blog/installing-rvm-ruby-on-rails-and-passenger-on-centos-6/ http:/ /sergiy.kyrylkov.name/2012/02/26/phusion-passenger-with-apache-on-rhel-6-centos-6-sl-6-with-selinux/
我的本地盒子正在运行fedora 16,apache 2.2,ruby 1.9+
我安装了乘客
gem install passenger
Run Code Online (Sandbox Code Playgroud)
然后
passenger-install-apache2-module
Run Code Online (Sandbox Code Playgroud)
几乎按照指示,如添加乘客模块
#mod_rails passenger
LoadModule passenger_module /home/orlybg/.gem/ruby/1.9.1/gems/passenger-4.0.5/libout/apache2/mod_passenger.so
PassengerRoot /home/orlybg/.gem/ruby/1.9.1/gems/passenger-4.0.5
PassengerDefaultRuby /usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)
这是我的vhost:
<VirtualHost *:80>
DocumentRoot "/var/www/html/billomatic"
ServerName billomatic
RailsEnv development
<Directory "/var/www/html/billomatic">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
LogLevel debug
ErrorLog "/var/log/httpd/billomatic-error_log"
CustomLog "/var/log/httpd/billomatic-access_log" common
Run Code Online (Sandbox Code Playgroud)
和我的config.ru
require 'rubygems'
require 'sinatra'
set :environment, ENV['RACK_ENV'].to_sym
disable :run, :reload
require File.join(File.dirname(__FILE__), 'bill-o-matic.rb')
run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)
我打的时候
http://billomatic/
Run Code Online (Sandbox Code Playgroud)
我得到Fedora页面的默认apache,首先是抱怨的错误日志
==> billomatic_error.log <==
[Wed Jun …Run Code Online (Sandbox Code Playgroud) 即使来自服务器本身的请求也需要大约7秒钟("redmine"安装的开始).
在WEBrick下运行ruby时,同样的请求只需要几毫秒......
我是ruby的新手,所以我不知道从哪里开始投资..或者是本地将apache请求重定向到WEBrick服务器的最佳解决方案?
如何禁用我的rails站点的缓存?
我正在运行Passenger(mod_rails),我的网站正在'开发'模式下运行:
'ENV['RAILS_ENV'] ||= 'development'
有帮助吗?