Die*_*ego 12 php install phpseclib
我在我的机器上安装了Apache,因此我可以将localhost用作PHP服务器.这样可行.现在我正在尝试使用PHP通过SFTP将文件发送到另一台服务器.我环顾四周,看到了phpseclib的推荐.我似乎无法弄清楚如何安装phpseclib.以下是该网站提供的内容:
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include('Net/SFTP.php');
Run Code Online (Sandbox Code Playgroud)
您必须设置包含路径.
我明白这些词是什么意思,但我无法让它发挥作用.我正在使用mac.我的服务器在/Users/diego/Sites/.我到底需要把phpseclib文件夹放在哪里?我需要在我的php文件中添加哪些行以phpseclib包含在内?
我尝试在linux机器上安装phpseclib.它对我来说很完美.我希望你的Mac上需要类似的配置.
在linux服务器上执行以下命令.
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
Run Code Online (Sandbox Code Playgroud)
在Mac上,使用mac port执行以下命令sudo port -v selfupdate sudo port install php54-ssh2
#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
Run Code Online (Sandbox Code Playgroud)
在Mac上,使用自制程序执行以下命令.brew安装php54-ssh2
下载phpseclib库并将其包含到项目目录中.
在相关的php文件中添加以下代码.
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);
}
Run Code Online (Sandbox Code Playgroud)
我按照本指南安装 PEAR,使其正常工作。
php.ini通过遵循上面的指南,我发现 apache2 正在我的文件夹中寻找/etc/。但我遇到了一个问题。我的文件夹里/etc/没有php.ini文件。但有php.ini.defualt。所以我“另存为”php.ini.default然后php.ini修改了 include_path。
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
include_path = ".:/Users/diego/pear/share/pear:/php/includes"
Run Code Online (Sandbox Code Playgroud)
PHP 不再抛出phpseclib无法找到的错误。
| 归档时间: |
|
| 查看次数: |
19183 次 |
| 最近记录: |