首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails deploy to ec2 with Rubber: mod_passenger.so:无法打开共享对象文件

Rails deploy to ec2 with Rubber: mod_passenger.so:无法打开共享对象文件
EN

Stack Overflow用户
提问于 2014-01-19 22:28:35
回答 1查看 3.8K关注 0票数 2

在看完Railscast“#347Rubber和亚马逊EC2”之后,我试图在亚马逊ec2上部署一个Rails应用程序,在解决了之前的一些问题后,我陷入了这个错误:

代码语言:javascript
复制
  * 2014-01-19 10:14:04 executing `rubber:apache:start'
  * executing "sudo -p 'sudo password: '  bash -l -c 'service apache2 status || service apache2 start'"
    servers: ["production.foo.com"]
    [production.foo.com] executing command
 ** [out :: production.foo.com] Apache2 is NOT running.
 ** [out :: production.foo.com] * Starting web server apache2
 apache2: Syntax error on line 211 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/passenger.conf: Cannot load /usr/local/rubies/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.35/ext/apache2/mod_passenger.so into server: /usr/local/rubies/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.35/ext/apache2/mod_passenger.so: cannot open shared object file: No such file or directory
 ** [out :: production.foo.com] Action 'start' failed.

我的远程apache2.conf

代码语言:javascript
复制
   208  #...
   209  # Include module configuration:
   210  Include mods-enabled/*.load
   211  Include mods-enabled/*.conf
   212  #...

我的远程/usr/local/rubies/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.35

代码语言:javascript
复制
 2  LoadModule passenger_module /usr/local/rubies/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.35/ext/apache2/mod_passenger.so
 3  PassengerRoot /usr/local/rubies/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.35
 4  PassengerRuby /usr/local/rubies/2.0.0-p247/bin/ruby
 5  PassengerUseGlobalQueue on
 6 #...

我的Gemfile:

代码语言:javascript
复制
#...
# Rubber deploy
gem 'rubber'
gem 'open4'
gem 'gelf'
gem 'graylog2_exceptions', :git => 'git://github.com/wr0ngway/graylog2_exceptions.git'
gem 'graylog2-resque'
gem 'unf'
gem "passenger", "~> 4.0.35"

我的橡皮-乘客.yml

代码语言:javascript
复制
passenger_version: 4.0.35
passenger_root: "#{`bash -l -c 'find #{ruby_path} -name passenger-#{passenger_version}'`.strip}"
passenger_ruby: "#{ruby_path}/bin/ruby"
passenger_lib: "#{passenger_root}/ext/apache2/mod_passenger.so"
passenger_listen_port: 7000
passenger_listen_ssl_port: 7001
max_app_connections: 20

role_dependencies:
  passenger: [apache]

roles:
  passenger:
    packages: [apache2-mpm-prefork, apache2-prefork-dev, libcurl4-openssl-dev, libapache2-mod-xsendfile]
    gems: [fastthread, rack, [passenger, "#{passenger_version}"]]
    rolling_restart_port: "#{passenger_listen_port}"

  web_tools:
    rolling_restart_port: "#{web_tools_port}"

我的橡皮-ruby.yml

代码语言:javascript
复制
ruby_build_version: 20131220.1
ruby_version: 2.0.0-p247
ruby_path: "/usr/local/rubies/#{ruby_version}"

有什么帮助吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-01-20 01:31:26

看起来你错过了阿帕奇的客舱。

你有没有尝试过Ubuntu:

代码语言:javascript
复制
sudo apt-get install libapache2-mod-passenger

或在CentOS上:

代码语言:javascript
复制
yum install mod_passenger

或者仅仅是常规安装

代码语言:javascript
复制
gem install passenger
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21217985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档