【问题标题】:PHP Exec SCP does not copy the file to the remote serverPHP Exec SCP 不会将文件复制到远程服务器
【发布时间】:2011-12-11 05:20:58
【问题描述】:

我需要使用 PHP 将文件从服务器传输到另一台服务器(我都拥有)。我有以下脚本:

<?php

exec('scp /home/pat/file1.tst pat@myserver.com:/home/pat/file1.txt');

我收到此错误:

Disallowed system call: SYS_pipe

那是什么错误?我该如何解决?

【问题讨论】:

  • 我讨厌在这里明显地成为队长,但是SYS_pipe 是不允许的,要修复错误,您需要允许它。
  • Google 上的第一个热门是这样的评论:stackoverflow.com/questions/3964766/… - 所以它可能是一个被禁止的执行官。顺便说一句,请参阅ssh2_scp_send 作为替代方案。
  • @Cyclone:在这里……先生,您是一位绅士和一位学者。我似乎是显而易见的船长:)

标签: php exec scp


【解决方案1】:

PHP 环境不允许在您的服务器上执行 exec。

【讨论】:

  • 我该如何启用它?我需要更新apache吗?还是php?
  • 如果是你的服务器,请检查 php.ini disable_functions ...如果是托管服务器,我敢打赌他们不会启用它。
【解决方案2】:

我知道这有点晚了,但phpseclib's pure PHP SCP implementation 可能会让你的运气更好:

https://raw.github.com/phpseclib/phpseclib/master/phpseclib/Net/SCP.php

使用示例:

<?php
include('Net/SCP.php');
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('bad login');
}

$scp = new Net_SCP($ssh);
$scp->put('abcd', str_repeat('x', 1024*1024));
?>

【讨论】:

    猜你喜欢
    • 2020-02-25
    • 2019-11-07
    • 2019-01-31
    • 2012-02-17
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2010-09-09
    • 2016-04-19
    相关资源
    最近更新 更多