2015-02-19 3 views
1

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

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

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

"/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 

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

+0

Интересно, если бы лучше работать с PTY или читать()/запись(): HTTP: //phpseclib.sourceforge .net/SSH/pty.html – neubert

ответ

0

Это звучит как отказ от установки 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 

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

Это может быть гораздо проще просто установить драгоценные камни рубина по умолчанию ...

 Смежные вопросы

  • Нет связанных вопросов^_^