Ubuntu 乘客-install-apache2-module:看起来好像出了什么问题

Ubuntu 乘客-install-apache2-module:看起来好像出了什么问题,ubuntu,passenger,Ubuntu,Passenger,我正在使用AmazonWeb服务(Ubuntu12.04.1LTS)和带有RVM(单用户安装)的Ruby1.9.3 我用rvmsudo gem安装乘客 我试着rvmsudo乘客安装-apache2-module 它说有些地方出了问题 我认为有两个错误 第一个错误 checking for alloca.h... *** /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/ruby/extconf.rb failed *

我正在使用AmazonWeb服务(Ubuntu12.04.1LTS)和带有RVM(单用户安装)的Ruby1.9.3

我用
rvmsudo gem安装乘客

我试着
rvmsudo乘客安装-apache2-module

它说有些地方出了问题

我认为有两个错误

  • 第一个错误

    checking for alloca.h... *** /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/ruby/extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of
    necessary libraries and/or headers.  Check the mkmf.log file for more
    details.  You may need configuration options.
    
    provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=/home/ubuntu/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/ruby
        --curdir
        --ruby=/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/bin/ruby
    
  • 所以我检查了mkmf.log,但找不到问题所在

    在mkmf.log中

    " -o conftest -I/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/include/ruby-1.9.1/x86_64-linux -I/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/include/ruby-1.9.1/ruby/backward -I/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/include/ruby-1.9.1 -I/home/ubuntu/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/ruby     -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration  -fPIC -g conftest.c  -L. -L/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib -Wl,-R/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib -L.  -rdynamic -Wl,-export-dynamic     '-Wl,-rpath,/../lib' -Wl,-R -Wl,/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib -L/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib -lruby  "
     sh: 0: Illegal option -
     Current option settings
     errexit         on
     noglob          on
     ignoreeof       on
     interactive     on
     monitor         on
     noexec          on
     stdin           on
     xtrace          on
     verbose         on
     vi              on
     emacs           on
     noclobber       on
     allexport       on
     notify          on
     nounset         on
     nolog           on
     debug           on
     checked program was:
     /* begin */
     1: #include "ruby.h"
     2:
     3: int main() {return 0;}
     /* end */
    
    2.2秒错误

     /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
     You have to install development tools first.
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:931:in `block in have_header'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:280:in `postpone'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:930:in `have_header'
    from /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/ruby/extconf.rb:36:in `<main>'
     rake aborted!
     Command failed with status (1): [cd 'ext/ruby/ruby-1.9.3-x86_64-linux/' && ...]
     /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/build/ruby_extension.rb:43:in `block in <top (required)>'
     /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/bin/ruby_noexec_wrapper:14:in `eval'
     /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/bin/ruby_noexec_wrapper:14:in `<main>'
     Tasks: TOP => apache2 => native_support => ext/ruby/ruby-1.9.3-x86_64-linux//passenger_native_support.so => ext/ruby/ruby-1.9.3-x86_64-linux//Makefile
     (See full trace by running task with --trace)
    
    /home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:381:在“try_do”中:编译器未能生成可执行文件。(运行时错误)
    您必须首先安装开发工具。
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:506:in'try_cpp'
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:931:in'block in have_header'
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:790:in'block in checking_'
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:284:in'block(2层)in
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:254:in'open'
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:284:in'block in delay'
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:254:in'open'
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:280:in“推迟”
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:789:in'checking_'
    from/home/ubuntu/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/mkmf.rb:930:in'have_header'
    从/home/ubuntu/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/ruby/extconf.rb:36:in`'
    雷克流产了!
    命令失败,状态为(1):[cd'ext/ruby/ruby-1.9.3-x86_64-linux/'&&……]
    /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/build/ruby_extension.rb:43:in'block in'
    /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/bin/ruby\u noexec\u包装:14:in'eval'
    /home/ubuntu/.rvm/gems/ruby-1.9.3-p392/bin/ruby\u noexec\u包装:14:in`'
    任务:TOP=>apache2=>native\u support=>ext/ruby/ruby-1.9.3-x86\u 64-linux//passenger\u native\u support.so=>ext/ruby/ruby-1.9.3-x86\u 64-linux//Makefile
    (通过使用--trace运行任务查看完整跟踪)
    
    但我在这里找不到任何线索


    有人知道如何解决这个问题吗?

    在我脑海中,我会首先通过安装build essential来确保我已经为开发配置了Ubuntu,如下所示

    xyz@supergLTS:~$ sudo apt-get install build-essential
    
    这将获得所有开发工具,文件和头,使和gcc将需要。然后,我将重新运行Apache2模块的构建过程

    rvmsudo passenger-install-apache2-module
    

    我的问题通过重新安装passenger解决了,我想有些库丢失了

    #gem uninstall passenger
    #gem install passenger
    #passenger-install-apache2-module
    

    我通过包含
    env路径修复了这个问题
    位于我的
    nginx.conf
    文件的最顶端。在我的例子中,我安装了所有必要的工具,但由于某些原因,nginx无法找到它们,因此添加了
    env路径使它工作。另外,在更改配置后,不要忘记重新启动nginx服务
    sudo服务nginx重启