簡體   English   中英

phpseclib zf2致命錯誤調用類

[英]phpseclib zf2 Fatal Error calling class

我正在嘗試使用zf2配置phpseclib。

我指的是https://github.com/phpseclib/phpseclib ,我安裝了composer。 我將包保存在vendor / phpseclib中。

inside vendor / composer =>

<?php

// autoload_namespaces.php generated by Composer

$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);

return array(
  'Zend\\' => $vendorDir . '/zendframework/zendframework/library/',
  'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests/',
  'phpseclib\\' => $vendorDir .  '/phpseclib/',
);

然后像他們建議的那樣,我用以下代碼創建一個php文件:

<?php
include 'vendor/autoload.php';
$ssh = new \phpseclib\Net\SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>    

我還添加了使用phpseclib \\ Net; 使用phpseclib \\ Net \\ SSH2;

為了確定

但我得到這個錯誤:

致命錯誤:在...中找不到類'phpseclib \\ Net \\ SSH2'

我使用的是Win8,Xampp和PHP5.5

我的composer.json是:

{
"name": "phpseclib/phpseclib",
"type": "library",
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
"keywords": [
    "security",
    "crypto",
    "cryptography",
    "encryption",
    "signature",
    "signing",
    "rsa",
    "aes",
    "blowfish",
    "twofish",
    "ssh",
    "sftp",
    "x509",
    "x.509",
    "asn1",
    "asn.1",
    "BigInteger"
    ],
"homepage": "http://phpseclib.sourceforge.net",
"license": "MIT",
"authors": [
    {
        "name": "Jim Wigginton",
        "email": "terrafrost@php.net",
        "role": "Lead Developer"
    },
    {
        "name": "Patrick Monnerat",
        "email": "pm@datasphere.ch",
        "role": "Developer"
    },
    {
        "name": "Andreas Fischer",
        "email": "bantu@phpbb.com",
        "role": "Developer"
    },
    {
        "name": "Hans-Jürgen Petrich",
        "email": "petrich@tronic-media.com",
        "role": "Developer"
    }
],
"require": {
    "php": ">=5.0.0"
},
"require-dev": {
    "phing/phing": "~2.7",
    "phpunit/phpunit": "~4.0",
    "sami/sami": "~2.0",
    "squizlabs/php_codesniffer": "~1.5"
},
"suggest": {
    "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.",
    "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
    "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 4.3.3."
},
"include-path": ["phpseclib/"],
"autoload": {
    "psr-0": {
        "Crypt": "phpseclib/",
        "File": "phpseclib/",
        "Math": "phpseclib/",
        "Net": "phpseclib/",
        "System": "phpseclib/"
    },
    "files": [
        "phpseclib/Crypt/Random.php"
    ]
},
"extra": {
    "branch-alias": {
        "dev-master": "0.3-dev"
    }
}
}

我的composer.json是

{
"name": "zendframework/skeleton-application",
"description": "Skeleton Application for ZF2",
"license": "BSD-3-Clause",
"keywords": [
    "framework",
    "zf2"
],
"homepage": "http://framework.zend.com/",
"require": {
    "php": ">=5.3.3",
    "zendframework/zendframework": "2.*",
    "doctrine/common" : ">=2.1",
    "phpseclib/phpseclib": "0.3.10"
}, 

}

最后,根據neubert的建議我解決了它。

我只需要在https://github.com/phpseclib/phpseclib/tree/2.0下載正確的軟件包

和執行php composer.phar安裝--dev如果不工作我只是在文件夾vendor / composer中更改了我的autoload_namespaces.php:

// autoload_namespaces.php generated by Composer
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);

return array(
    'Zend\\' => $vendorDir . '/zendframework/zendframework/library/',
    'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests/',
    'phpseclib\\' => $vendorDir .  '/phpseclib/',
);

行'phpseclib \\'=> $ vendorDir。 '/ phpseclib /'是解決方案的關鍵

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM