gpt4 book ai didi

php - 使用 gems 从 PHP 运行 ruby​​ 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:17 25 4
gpt4 key购买 nike

我尝试从 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>'

但要求 'rubygems' 运行正常

最佳答案

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

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

rvm 包装器 2.1.1@commandline_gemet php server.rb

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

关于php - 使用 gems 从 PHP 运行 ruby​​ 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com