Ruby命令没有在PHP shell_exec函数中执行

时间:2016-01-13 11:00:51

标签: php ruby-on-rails ruby linux shell

我想通过PHP文件运行WPScan。我正在使用shell_exec函数来调用WPScan命令,但它会抛出以下错误:

[ERROR] cannot load such file -- bundler/setup

WPScan需要在服务器上运行ruby,WPScan命令只能在WPScan目录中运行。当我们在WPScan目录之外运行此命令时,它会抛出相同的跟随错误:

[ERROR] cannot load such file -- bundler/setup

表示浏览器无法找到WPScan所需的文件,并且所有文件都放在网站的文档根目录中。其他所有命令都在使用shell_exec,但ruby命令会抛出错误。简而言之,它无法找到WPScan所需的文件。

命令是:

ruby wpscan.rb --url http://example.com/ --follow-redirection --log

我也尝试使用完整路径:

/usr/local/rvm/rubies/ruby-2.3.0/bin/ruby /var/www/html/wp-scan/wpscan.rb --url example.com --follow-redirection --log

但没有任何作用。

$wp_command = shell_exec('/usr/local/rvm/rubies/ruby-2.3.0/bin/ruby /var/www/html/wp-scan/wpscan.rb --url example.com --follow-redirection --log');

echo $wp_command;

die;

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

$wp_command = shell-exec('cd /var/www/html/wp-scan && ruby wpscan.rb --url example.com --follow-redirection --log');

echo $wp_command;

die;

如果正确安装WPScan和RVM,应该可以正常工作。