首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何安装phpseclib?

如何安装phpseclib?
EN

Stack Overflow用户
提问于 2015-05-28 19:41:32
回答 4查看 30.8K关注 0票数 13

我已经在我的机器上安装了Apache,所以我可以使用localhost作为PHP服务器。这是可行的。现在,我正在尝试使用PHP通过SFTP将文件发送到另一台服务器。我环顾四周,发现推荐使用phpseclib。我似乎不知道如何安装phpseclib。以下是该网站提供的内容:

代码语言:javascript
复制
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include('Net/SFTP.php');

您必须设置包含路径。

我明白这些话的意思,但我一直无法使它发挥作用。我用的是mac。我的服务器在/Users/diego/Sites/中。我到底需要把phpseclib文件夹放在哪里?为了包括phpseclib,我需要在php文件中放哪些行?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-28 23:20:41

我通过安装PEAR让它工作,遵循这个向导。

通过遵循上面的指南,我发现apache2正在我的/etc/文件夹中寻找php.ini。但我遇到了一个问题。在我的/etc/文件夹中没有php.ini文件。但有php.ini.defualt。因此,我将php.ini.default保存为php.ini,然后修改了include_path。

代码语言:javascript
复制
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
include_path = ".:/Users/diego/pear/share/pear:/php/includes"

PHP不再抛出错误,说找不到phpseclib

票数 0
EN

Stack Overflow用户

发布于 2017-03-22 07:06:37

我尝试在linux机器上安装phpseclib。对我来说效果很好。我希望你需要一个类似的配置在你的Mac上。

在linux服务器上执行以下命令。

代码语言:javascript
复制
sudo apt-get install php5-pgsql php-pear
sudo pear channel-discover phpseclib.sourceforge.net
sudo pear remote-list -c phpseclib
sudo pear install phpseclib/Net_SSH2
sudo service apache2 restart

在Mac上,使用mac端口执行以下命令sudo端口-v selfupdate sudo端口安装php54 54-ssh2

代码语言:javascript
复制
#add this to the php.ini file /etc/php.ini, it can be placed at the end of the file
extension=/opt/local/lib/php54/extensions/no-debug-non-zts-20100525/ssh2.so
sudo /usr/sbin/apachectl restart

在Mac上,使用自制程序执行以下命令。brew安装php54 54-ssh2

下载phpseclib库并将其包含到项目目录中。

在相关的php文件中添加以下代码。

代码语言:javascript
复制
include('phpseclib1.0.5/Net/SFTP.php');

set_include_path(get_include_path().PATH_SEPARATOR.'phpseclib');
define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);

$sftp = new Net_SFTP('555.55.55.55', 22);

if(!$sftp->login('username', 'password')) {
    echo $sftp->getSFTPLog();
    die('Login failed!');
} else {
    echo $sftp->pwd();
    echo $upload = $sftp->put('/sftp/'.$filename, $uploadedfile, NET_SFTP_LOCAL_FILE);
}
票数 9
EN

Stack Overflow用户

发布于 2015-05-28 21:32:24

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');将添加phpseclib作为相对路径。因此,执行include('Net/SFTP.php')将包括phpseclib/Net/SFTP.php,但这相对于工作目录是什么。

PEAR在include_path中通常有一条绝对路径。所以你可以试着去做。将phpseclib放入某个目录(文档根目录之外的prob),然后将该目录放入您的include_path中。

请注意,如果您从sourceforge.net下载phpseclib,或者您在1.0分支上,这就更重要了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30515751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档