【问题标题】:Connecting via SSH from a PHP script从 PHP 脚本通过 SSH 连接
【发布时间】:2013-10-06 04:41:05
【问题描述】:

我在尝试从 PHP 脚本通过 SSH 连接到服务器时收到此错误。 “致命错误:调用未定义函数 ssh2_connect()”。

我检查了我的 PHPINFO(),它显示 libSSH 版本 = libssh2/1.4.2,但是当我查看 \php\ext 时,我没有看到 php_ssh2.dll。另外,我的 php.ini 文件中没有显示任何关于 ssh 的内容。

我对 SSH 很陌生,希望能得到一些关于如何使其正常工作的建议。我目前在窗口机器上使用 XAMPP 进行测试,并且我有一个我试图通过 SSH 连接到的家庭服务器。我知道 SSH 正在服务器上工作和配置,因为我可以使用 Putty.exe 正常连接。提前感谢您的任何建议。

【问题讨论】:

  • 虽然 PHP 可能已经编译了 SSH 支持,但您可能需要单独安装 the PECL extension
  • 我看了一下这个,但我不知道如何安装那个扩展。 PECL 带有 2 个 .dll 和一个 .pdb 文件。我将 .dll 移动到 etx 文件夹并重新启动了 apache,但它现在不会启动。我什至尝试使用 Regsvr32 注册 .dll,但它给了我一个错误。我无法找到有关如何安装 windows 扩展的文档。

标签: php ssh


【解决方案1】:

PHP ssh2 扩展is not built for Windows.

您可以尝试自己编译它,但这可能比您真正想要的要多得多。最好只使用 Linux 系统来开发您的项目,安装和使用这个扩展是相当简单的。

【讨论】:

  • 感谢您的信息。是否有另一种方法可以在不使用扩展的情况下通过 SSH 连接到服务器?我已经读到使用 Exec() 可能可以做到这一点,但我真的找不到太多关于使用或语法的信息。谢谢
  • 当然,只需在 Linux 上安装 PHP……或者 Cygwin。无论如何,Linux 可能是这里阻力最小的路径。
  • 我有一个带有 linux 的共享主机帐户,我也可以从那里进行一些测试。到目前为止,在我的本地计算机上执行此操作更加容易。但是,我的问题看起来像我无法在共享主机帐户上安装扩展。这就是为什么我希望找到另一种方法来通过 ssh 连接到我的家庭服务器并运行一些命令。仍然希望我可以让 exec() 工作,但是证明很难找到关于将它与 ssh 一起使用的文档。
  • 我最终使用 PHPseclib 来解决我的问题。再次感谢您的帮助。
猜你喜欢
  • 2014-10-27
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 2015-08-19
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
相关资源
最近更新 更多