PHP를 사용하여 서버 1에서 서버 2로 파일을 보내는 쉘 스크립트를 실행하고 싶습니다. 서버 1의 공개 키가 authorized_keys 서버 2에 기록되어 완벽하게 작동합니다. 다음 스크립트는 실제로 서버 2 서버 1에서 파일을 전송하지 않습니다 어떤 이유로 PHP에서 scp로 쉘 스크립트를 실행하는 경우
: 그래서// This is a webpage at http://server1.com/sendfile.php
<?php
if($_POST['a'])
{
echo '<pre>';
echo passthru('./scp.sh');
echo '</pre>';
}
?>
<form method="post">
<button name="a" value="Af">Send File</button>
</form>
//This is the contents of scp.sh
scp ../dbexport/db.txt [email protected]:
내가 터미널에서 scp.sh
에서 실행, 모든 것이 잘 작동 - 파일이 실제로 보내지 및 받았습니다.
http://server1.com/sendfile.php
에 가서 단추를 누르면 php 파일이 실제로 쉘 파일을 실행합니다 (scp 명령 전후에 echo 문을 넣어 확인했습니다). 그러나 파일은 server2.com에 의해 성공적으로 수신되지 않습니다.
왜 이런 사람 일지 알 수 있습니까?
웹 서버 계정의 authorized_keys에 키를 추가 했습니까? 권한으로 실행되는 셸에서 작동하기 때문에 웹 서버의 ID로 실행되는 셸에는 아무런 영향을주지 않습니다. –
우우 yeahhhhh .... 내가 그걸 잊었 어 – John
맙소사. 고마워, 마크! – John