无法使用带有乘客和apache配置的导轨的tts

时间:2013-12-23 20:04:24

标签: ruby-on-rails ruby apache httprequest passenger

我有一个rails 3.2应用程序,已配置为与phusion乘客和apache一起使用。 正常请求在我的服务器上正常运行,但是当tts gem尝试通过rails app连接到google tts服务器时,我收到以下错误

 SystemExit in DemoController#call
    exit

并且

app/controllers/demo_controller.rb:24:in `call'

这是我的演示控制器的相关部分。

require 'tts'
require "open-uri"
require "net/https"
require 'json'

class DemoController < ApplicationController


    def call

    string1 = "Testing in file one"
    string1.to_file "en", "file1.mp3" 

    end

end

任何帮助将不胜感激。 提前致谢

1 个答案:

答案 0 :(得分:0)

经过一个小时的谷歌搜索,终于得到了解决方案。 问题是gem没有获得足够的权限来执行系统命令。这不是乘客阻止请求的问题。 解决此问题的一种简单方法是为乘客提供足够的权限来执行必要的任务。 考虑一个样本:

<VirtualHost *:80>
    # Change these 3 lines to suit your project
    RailsEnv development
    ServerName xyz.abc.com
    DocumentRoot /home/user/app/public
   <Directory /home/user/app/public>
        AllowOverride all
        Options -MultiViews
    </Directory>
    PassengerHighPerformance on
    PassengerSpawnMethod direct

</VirtualHost>

必须将这些行添加到代码

    PassengerUser root
    PassengerDefaultUser root