我有一个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
任何帮助将不胜感激。 提前致谢
答案 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