【问题标题】:Phpseclib inside wordpress is not workingwordpress 中的 Phpseclib 不起作用
【发布时间】:2013-12-11 04:18:45
【问题描述】:

我在我的 wordpress 网站中安装了 phpseclib。每次我运行这个脚本时,它都会显示空白页,甚至隐藏 wordpress 管理栏。

include('Net/SSH2.php');
$ssh = new Net_SSH2('www.domain.tld');

if (!$ssh->login('username', 'password')) 
{
    exit('Login Failed');
}
echo $ssh->exec('pwd');

echo $ssh->exec('ls -la');`

但后来我把库放在了 wordpress 之外,它工作得很好。可能是什么问题呢?我真的需要在 wordpress 中运行的代码。提前致谢!

【问题讨论】:

  • 这就是我包含库的方式: set_include_path(get_include_path() . get_include_path().'/phpseclib');包括('Net/SSH2.php');
  • 你不需要做两次 get_include_path() ;)
  • 对不起。那是一个错字。我只包括了一次。

标签: php wordpress ssh phpseclib


【解决方案1】:

我的猜测:phpseclib 不在脚本的 include_path 中。您得到的空白页面可能是由于 PHP 无法实例化 Net_SSH2 类导致的致命错误,因为未包含 Net/SSH2.php。

如果您设置display_errors = 1error_reporting = E_ALL,您可能会看到错误。

【讨论】:

  • 我收到此错误消息:无法打开 'Net/SSH2.php' 以包含 (include_path='.:/usr/lib64/php:/usr/share/pear.:/usr/ lib64/php:/usr/share/pear/phpseclib')
  • 您是否通过 PEAR 安装了 phpseclib?如果你执行 /usr/share/pear/phpseclib 会是什么样子?
  • 首先,感谢您回答我的问题。我确实是通过 PEAR 安装的。按照phpseclib.sourceforge.net/pear.htm 上的说明,我将目录更改为 /usr/share/pear 然后我安装了。我应该创建名为“phpseclib”的新目录吗?我以为它会为我创造它。当我执行 /usr/share/pear/phpseclib 时,它说不存在这样的文件或目录。
  • 安装phpseclib应该在哪个目录下?
  • 你安装它的目录应该没问题。我建议我这样做是因为我对 phpseclib 的 PEAR 频道不太熟悉,但认为它可能遵循 github.com 上 phpseclib 的结构。我想它没有。取而代之的是,我最好的猜测是您的 Wordpress 安装正在以不同的用户身份运行 - 一个无权访问 /usr/share/pear 或其他任何内容的用户 - 而不是您运行的其他脚本有效。如果是这种情况,您可以在目录上执行 chmod -r,也许执行 phpsuexec 来更改运行 apache 的用户等。
猜你喜欢
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
  • 2014-03-31
  • 1970-01-01
  • 2021-09-13
  • 2012-05-03
相关资源
最近更新 更多