安装Nginx时安装Passenger; 可能?

14 linux ubuntu ruby-on-rails passenger nginx

相反,我相信一个简单的问题是,当您的网络服务器上已安装nginx时,是否可以安装乘客?

如果答案是肯定的,我已经执行了以下操作:

在这个时刻,我已经安装了nginx(对于我的PHP应用程序),接下来我检查了乘客的git存储库:

mkdir /repositories
cd /repositories/
git clone https://github.com/FooBarWidget/passenger.git
cd passenger/
Run Code Online (Sandbox Code Playgroud)

然后将此代码段添加到 /etc/nginx/conf/nginx.conf

  http {
      ...
      passenger_root /repositories/passenger;
      passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby;
      ...
  }
Run Code Online (Sandbox Code Playgroud)

但是,当我想重新启动nginx时,我收到以下错误:

* Starting Web Server nginx
nginx: [emerg] unknown directive "passenger_root" in /etc/nginx/nginx.conf:19
Run Code Online (Sandbox Code Playgroud)

最后我说,我还需要设置一些配置,让nginx意识到我们正在使用乘客.

我的服务器阻止

server {
  listen 80;
  server_name rails.kreatude.com;
  root /srv/www/my_test_app;
  passenger_enabled on;
}
Run Code Online (Sandbox Code Playgroud)

Ion*_*Br. 16

我认为您的问题是nginx中没有乘客模块.

您描述的所有乘客相关指令(passenger_root,passenger_ruby,passenger_enabled)仅在乘客模块连接到nginx 时可用.这就是你必须编译nginx的原因--add-module='/path/to/passenger-3.0.9/ext/nginx'.

不幸的是,我不知道在没有重新安装nginx的情况下启用乘客模块的任何方法.但是,根据http://wiki.nginx.org/Modules,"必须在编译时选择Nginx模块.",因此可能无法做到这一点.