0

在全新安装的 Ubuntu 上,使用 Ruby/Rails/RVM 和 Apache 通过Passenger,apache 将在干净重启时出现,但在第一次请求 Rails 应用程序时崩溃。

我之前已经做过很多次了……除了安装在多用户模式下的 RVM。

似乎可能有一些图书馆冲突?

详情如下。

  • 64 位 Ubuntu 11.10 安装
  • 创建了一个发布用户和组
  • 卸载默认的 apache、ruby、passenger (sudo apt-get remove ...)
  • 使用系统版本安装的 RVM(多用户)
  • 使用 RVM 安装 ruby​​ 1.9.3p194(作为发布用户安装)
  • 将发布用户添加到组rvm
  • ruby 和 gems 在 /usr/local/rvm/ 下并且都在组中rvm并且可读
  • 安装 apache2 和各种支持库 ( sudo apt-get install apache2)
  • 将 apache2 用户 ( www-data) 添加到组rvm
  • gem install passenger从 gem ( )安装乘客
  • 使用乘客来制作乘客模块(passenger-install-apache2-module)。没有错误。
  • 配置 apache 以加载正确的模块(在 /usr/local/rvm... 下)
  • 配置apache以引用正确的PassengerRoot和PassengerRuby
  • 注意:这一切都没有参考 Rails 应用程序
  • 启动 apache ( sudo apache2ctl start) ...这挂起

Apache error.log 显示

[ pid=1303 thr=140033289561952 file=ext/apache2/Hooks.cpp:1389 time=2012-05-07 19:54:15.497 ]: Initializing Phusion Passenger...
[ pid=1303 thr=140033289561952 file=ext/apache2/Hooks.cpp:1664 time=2012-05-07 19:54:15.536 ]: Shutting down Phusion Passenger...
[ pid=1312 thr=140533444790112 file=ext/common/LoggingAgent/Main.cpp:283 time=2012-05-07 19:54:15.537 ]: Logging agent online, listening at unix:/tmp/passenger.1.0.1303/generation-0/logging.socket

换句话说,乘客在它开始后不久就终止了。 /var/log/syslog显示PassengerWatchd 的堆栈转储。

我尝试在独立模式下运行乘客。纳达。

有任何想法吗?

4

2 回答 2

0

对于任何寻找的人来说,这最终成为了几个人的问题,并且这里的乘客谷歌组上发布了几个很好的解决方法

于 2012-10-25T14:05:36.713 回答
0

确保您的passenger.conf 使用与控制台中相同的ruby 版本。

$ cat /etc/apache2/mods-available/passenger.conf 
PassengerRuby /home/ubuntu/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.2-p320/gems/passenger-3.0.18
PassengerDefaultUser www-data

比较PassengerRuby是一样的:

$ which ruby
/home/ubuntu/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
于 2013-01-19T03:47:39.653 回答