Ошибка запуска скрипта ruby ​​и использования гемов с помощью ssh2 из php с удаленного сервера

У меня есть сервер, на котором установлены наборы ruby ​​и gems, такие как mysql2, capistrano, и я пытаюсь запустить скрипт ruby ​​из удаленный сервер (сервер PHP) с использованием SSH2. Мой скрипт работает нормально на сервере ruby, но когда я пытаюсь сделать то же самое с удаленного сервера, используя ssh2, я не могу запустить этот скрипт ruby.

Для тестирования я написал простые сценарии, которые просто печатают оператор, и он работает, когда мне нужно пройти абсолютный путь, где установлен ruby.

Но сейчас мне очень сложно получить путь для каждого драгоценного камня, установленного для моего скрипта ruby. Ниже ошибка

"/home/user/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- sshkit (LoadError)"/home/user/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- mysql2 (LoadError)

Ниже приведен скрипт, который я пытаюсь выполнить на моем php-сервере.

$ssh = new Net_SSH2('ip');
if (!$ssh->login('user', 'password')) {
exit('Login Failed');
}echo '<pre>';
print_r($ssh->exec('/home/user/.rvm/rubies/ruby-2.2.0/bin/ruby /home/user/deployment/crm/crm.rb'));
echo '</pre>';

Если я пытаюсь запустить это без рубинового пути, я получаю

bash ruby command not found

Любые предложения, как я могу просто выполнить свой скрипт ruby ​​с удаленного сервера.

1

Решение

Это звучит как ошибка правильной настройки RVM, а не чего-либо еще.

Проверьте этот ответ: https://superuser.com/questions/413683/how-to-get-ruby-when-called-from-a-shell-script-to-see-rvm-default-ruby

Адаптировано оттуда:

# Assumes that 2.2.0 is already fully-installed under RVM.
rvm --default use ruby-2.2.0

И это должно быть выполнено для пользователя, с которым вы вошли. Вы, вероятно, хотите прочитать и понять этот ответ, чтобы получить то, что вам нужно.

Может быть, намного проще просто установить гемы на рубин по умолчанию…

0

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

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

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