запустить скрипт ruby ​​из PHP с гемами

Я пытаюсь запустить из PHP мой скрипт ruby. Когда я запускаю его из командной строки, все в порядке, но когда я запускаю его из кода PHP, я не могу использовать гемы.

вот мой 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' работает нормально

2

Решение

Вывод показывает, что ваша среда использует 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. Это создает exectubale php_server в / usr / local / rvm / bin. Оболочка подготавливает запрошенную среду Ruby для вашего скрипта, поэтому, если вы вызываете это из своего PHP-скрипта, все должно работать как положено.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]