【问题标题】:enable php_ssh2 on Windows 8在 Windows 8 上启用 php_ssh2
【发布时间】:2018-01-31 21:03:07
【问题描述】:

我正在尝试使用 php_ssh2 通过 sftp 将命令从带有 xampp 作为 Web 服务器和 PHP 5.5 的 Windows 服务器发送到树莓派。 尽管我按照PHP Install SSH2 on Windows machine 的程序操作,但我无法使其工作。 也许有一些适用于 Windows 8 的更新。 当我尝试注册 libssh2.dll 时,我得到一个错误(它不是一个有效的 .dll),尽管我下载了最新版本。 如果我执行 php -i 我会收到此错误:“PHP 启动:无法加载动态库 'C:\xampp\php\ext\php_ssh2.dll' - 它不是有效的 Win-32 应用程序” 操作系统为Windows 8 64bit。 有什么建议吗?

【问题讨论】:

    标签: php windows-8.1 sftp


    【解决方案1】:

    我的建议:使用phpseclib, a pure PHP SSH2 implementation。例如。

    <?php
    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');
    ?>
    

    它有多个advantages over libssh2

    • 更便携。
    • 更易于使用。
    • 更快
    • 更好的公钥支持

    【讨论】:

    • 感谢您的建议。你知道怎么设置成zf2项目吗?
    • 我在根文件夹中更新了 composer.json: "autoload": { "psr-0": {"phpseclib\\": "vendor/phpseclib/"} } ;我下载了包并保存到 vendore/phpseclib 中。然后我在应用程序的控制器中调用了 phpseclib。 "use phpseclib" .... 然后是 "$ssh = new Net_SSH2(ip)" 但我得到一个致命错误 "Class not found"
    【解决方案2】:

    首先你需要找到

    Architecture - 32 bit or 64 bit or 86 bit
    compiler version - VC9 or VC11 or VC14
    Thread safe or Non thread safe
    

    这可以通过在任何 php 文件中打开 phpinfo 或 echo phpinfo() 来找到。然后搜索编译器、架构和线程安全

    然后转到http://windows.php.net/download/ 并下载正确的版本。替换需要的文件然后重启网络服务器

    【讨论】:

      【解决方案3】:

      x64系统的下载库,在这里>

      ssh2 库 0.12 for PHP 5.5 - Non Thread Safe (NTS) x64

      ssh2 库 0.12 for PHP 5.5 - Thread Safe (TS) x64

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-19
        • 2015-08-13
        • 1970-01-01
        • 2015-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多