nginx:[emerg]中的参数数无效;乘客“根”;指示

nginx:[emerg]中的参数数无效;乘客“根”;指示,nginx,amazon-ec2,passenger,rubber,ruby-2.1,Nginx,Amazon Ec2,Passenger,Rubber,Ruby 2.1,我第一次尝试在EC2上安装橡胶(complete_passenger_nginx_postgresql)。我更改了配置文件中的一系列设置,使其能够与不同的AMI(Ubuntu 12.04.3 LTS-AMI-a73264ce(64位))、Ruby 2.1.0、Passenger 4.0.29和Nginx 1.4.4一起工作。 我几乎让它工作了,但在启动Nginx时失败,出现以下错误: nginx: [emerg] invalid number of arguments in "passenger

我第一次尝试在EC2上安装橡胶(complete_passenger_nginx_postgresql)。我更改了配置文件中的一系列设置,使其能够与不同的AMI(Ubuntu 12.04.3 LTS-AMI-a73264ce(64位))、Ruby 2.1.0、Passenger 4.0.29和Nginx 1.4.4一起工作。 我几乎让它工作了,但在启动Nginx时失败,出现以下错误:

nginx: [emerg] invalid number of arguments in "passenger_root" directive in /etc/nginx/nginx.conf:45
rubber-passenger_nginx.yml的“passenger_root”代码如下:


你知道我应该修改什么才能让它工作吗?

你的/etc/nginx/nginx.conf文件中有一个错误

更改行:

passenger_root /usr/local/rubies/2.1.0/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static‌​/passenger-4.0.29
/usr/local/rubies/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.29;
passenger_ruby /usr/local/rubies/2.1.0/bin/ruby;
进入:


就我而言,我缺少

错误:

root "/directory/with double quotes/will work"
root "/directory/with double quotes/will work";
解决方案:

root "/directory/with double quotes/will work"
root "/directory/with double quotes/will work";

请在此处包括您的/etc/nginx/nginx.conf:45行:
/usr/local/rubies/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.29这里是第44行到第46行:
passenger_root/usr/local/rubies/2.1.0/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/passenger-4.0.29/usr/local/rubies/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.29;乘客_ruby/usr/local/rubies/2.1.0/bin/ruby谢谢。是的,你的确是对的,但问题要复杂一点。事实上,在文件“rubber-passenger\u nginx.yml”中,乘客根是用以下字符串外推的:
passenger\u根:“#{
bash-l-c'find#{ruby\u path}-name passenger-#{passenger\u version}”
所以我用硬编码路径替换了它。这不是一个理想的解决方案,但确实有效。后来我还有其他问题需要解决,但我还没做完。因为要写的东西太多了,我将在一篇博客文章中发布一个链接,分享我的痛苦和解决方案,希望:)谢谢。@Benkas我知道这是事后诸葛亮,但我能够通过在乘客根目录的计算中添加一个简单的grep来解决这个问题,这样它只返回gem路径,而不是包装的扩展路径。passenger_root:“#{
bash-l-c'find#{ruby_path}-name passenger-#{passenger_version}| grep\\\'gems/passenger\\\'
strip}”