Potrzebuję pliku z serwera na inny serwer (posiadam oba) przy użyciu PHP. Mam następujący skrypt:PHP Exec SCP nie kopiuje pliku do zdalnego serwera
otrzymuję ten błąd:
Disallowed system call: SYS_pipe
Co to za błąd? i jak mogę to naprawić?
Potrzebuję pliku z serwera na inny serwer (posiadam oba) przy użyciu PHP. Mam następujący skrypt:PHP Exec SCP nie kopiuje pliku do zdalnego serwera
otrzymuję ten błąd:
Disallowed system call: SYS_pipe
Co to za błąd? i jak mogę to naprawić?
Środowisko PHP nie zezwala na wykonywanie na serwerze.
i jak mogę go włączyć? czy muszę aktualizować apache? lub php? –
jeśli to jest twój serwer sprawdź php.ini disable_functions ... jeśli jest to hostowany serwer z trudnymi nowogami Założę się, że moja emerytura nie pozwoli na to. – TigOldBitties
dzięki, znalazłem to –
To jest trochę późno, wiem, ale może mieć więcej szczęścia z phpseclib's pure PHP SCP implementation:
https://raw.github.com/phpseclib/phpseclib/master/phpseclib/Net/SCP.php
przykład, jak z niego korzystać:
<?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));
?>
Nienawidzę być kapitan oczywisty tutaj , ale 'SYS_pipe' jest niedozwolone i aby naprawić błąd, musisz go zezwolić. – Cyclone
Pierwsze trafienie w Google to ten komentarz: http://stackoverflow.com/questions/3964766/ensuring-user-input-code-does-not-damage-server-when-executed - więc jest to prawdopodobnie zabroniony exec. Btw, patrz [ssh2_scp_send] (http://php.net/manual/en/function.ssh2-scp-send.php) jako alternatywa. – mario
@Cyclone: Tutaj ... Ty jesteś dżentelmenem i uczonym. Wydaje mi się, że jestem Kapitanem Obvious :) – TigOldBitties