Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gems从PHP运行ruby脚本_Php_Ruby_Pivotaltracker - Fatal编程技术网

使用gems从PHP运行ruby脚本

使用gems从PHP运行ruby脚本,php,ruby,pivotaltracker,Php,Ruby,Pivotaltracker,我尝试从PHP运行我的ruby脚本。当我从命令行运行它时,一切正常,但当我从PHP代码运行它时,我不能使用gems 这是我的PHP脚本 $rubyBin = '/usr/local/rvm/rubies/ruby-2.1.1/bin/ruby'; echo (shell_exec("$rubyBin server.rb 2>&1")); 这是来自服务器的响应 file exists/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/site_rub

我尝试从PHP运行我的ruby脚本。当我从命令行运行它时,一切正常,但当我从PHP代码运行它时,我不能使用gems

这是我的PHP脚本

$rubyBin = '/usr/local/rvm/rubies/ruby-2.1.1/bin/ruby';
echo (shell_exec("$rubyBin server.rb 2>&1"));
这是来自服务器的响应

file exists/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- pivotal-tracker (LoadError)
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from server.rb:5:in `<main>'
文件存在/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/site\u ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:54:“require”中:无法加载此类文件--pivotal tracker(LoadError)
来自/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/site\u ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:54:in'require'
来自服务器。rb:5:in`'

但是require
'rubygems'
运行正常

输出显示您的环境正在使用Ruby版本管理器(rvm)。您的PHP环境可能使用与命令行环境不同的Ruby版本和/或Gemset

解决方案是通过发出如下命令将Ruby脚本包装到RVM包装器中:

rvm包装2.1。1@commandline_gemetphp server.rb


请确保指定正确的Ruby版本(请参见rvm列表)、Gemset(请参见rvm Gemset列表)和server.rb路径。这将在/usr/local/rvm/bin中创建一个php_服务器exectubale。包装器为您的脚本准备请求的Ruby环境,因此,如果您从PHP脚本中调用该环境,一切都应按预期工作。

因此,当您从命令行运行
/usr/local/rvm/rubies/Ruby-2.1.1/bin/Ruby server.rb 2>&1
时,它工作?脚本在我运行Ruby server.rb时工作