Apache2 的 ModRails 设置:无法加载?

Apache2 的 ModRails 设置:无法加载?

我正在尝试在 Ubuntu 上执行与 Apache2/Passenger 一起运行的 Ruby on Rails 的全新安装。我能够成功安装 apache2、rvm、ruby、rails 和 Passenger,后半部分如下教程。所有安装都进行得很顺利;我最终得到了以下版本的软件:

  • 在 Amazon EC2 上运行的 Ubuntu 11.10
  • Apache 2.2.20
  • RVM 1.10.2
  • Ruby 1.9.3p0
  • Rails 3.1.3
  • 乘客 3.0.11

运行passenger-install-apache2-module安装程序后,建议我:

Please edit your Apache configuration file, and add these lines:

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p0/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p0/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p0/ruby

当连接 Apache2 以使用 mod_passenger 时,我遇到了麻烦。

我去/etc/apache2/mods-available并编辑:

乘客载重量

LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so`

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p0/gems/passenger-3.0.11/ext/apache2/mod_passenger.so` 

乘客配置文件

<IfModule mod_passenger.c>
  PassengerRoot /usr
  PassengerRuby /usr/bin/ruby
</IfModule>

<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p0/gems/passenger-3.0.11
  PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p0/ruby
</IfModule>

然后我通过 重启服务器apachectl restart。当我加载网站时,我看到一个 HTTP 错误,从 Google Chrome 中可以看到:

Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.

当我检查 Apache /var/log/apache2/error.log 时,发现了这一点:

[Thu Jan 19 19:32:07 2012] [notice] Apache/2.2.20 (Ubuntu) Phusion_Passenger/3.0.11 configured -- resuming normal operations
[Thu Jan 19 19:32:09 2012] [notice] child pid 4163 exit signal Segmentation fault (11)`

因此看起来模块没有正确加载或运行;我该如何解决这个问题?

编辑: 额外信息

我的虚拟主机:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /somewhere/public
ServerName mydomain.com
ServerAlias *.mydomain.com

RackBaseURI /
RackEnv production
PassengerMaxPoolSize 4

<Directory "/somewhere/public">
        Options Indexes FollowSymLinks -MultiViews
        AllowOverride all
        Order allow,deny
        Allow from all
</Directory>
</VirtualHost>

答案1

我在这个问题上花了几个小时,但找不到简单的解决办法。我了解到应该可以通过让 Apache '转储核心' 或使用 gdb 附加到进程来调试这个段错误,但这两种方法都无法向我显示有关该问题的更多信息。

相反,由于我在 EC2 上运行,我决定重新加载基础 Ubuntu AMI,从头开始。在对所有这些应用程序进行细致的重新安装后,它运行时没有出现段错误,我能够成功启动我的 Ruby on Rails 服务器。最有可能的是我的配置或设置出了问题(也许我错过了依赖项,以错误的顺序安装了东西?)

如果您遇到此问题并且可以轻松全新安装,那么这样做可能会更容易,而不是浪费数小时尝试追踪隐藏的错误。

相关内容