使用gems从PHP运行ruby脚本
我尝试从PHP运行我的ruby脚本。当我从命令行运行它时,一切正常,但当我从PHP代码运行它时,我不能使用gems 这是我的PHP脚本使用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
$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时工作