2013-05-09 4 views
0

PHP에서 원격 웹 서버에 bash script을 실행해야합니다. 요청은 PHP를 통해 web1에서 발생하며 다른 웹 서버 web2에서 bash 스크립트를 실행해야합니다. web1은 SSH로 web2 모든 로컬 트래픽을 처리 할 수 ​​있지만 PHP를 통해 SSH를 수행하는 것은 정말 불쾌하고 실행중인 exec("ssh [email protected] ./bash_script")은 보안에 대한 끔찍한 생각처럼 보입니다. 또한 bash 스크립트에서 일종의 HTTP 인터페이스를 노출하려고 시도하는 것은 잘못된 접근 방법처럼 보입니다.PHP에서 원격 bash 스크립트를 실행하는 방법

무엇이 권장됩니까? 크로스 언어와 원격 실행 라이브러리 또는 프레임 워크가 있습니까?

생각해 보면 Node.js에 bash 스크립트를 실행하고 web2에있는 간단한 래퍼를 작성할 수 있습니다. web1은 단순히 HTTP를 통해 node.js 래퍼에 도달합니다.

감사합니다.

+0

나는 후자가 더 좋은 선택이라고 생각한다. – Hameed

+0

왜 bash_script를 실행하는 PHP 파일에서 web1 contact web2를 만듭니 까? Web2는 IP를 통해 web1인지 확인할 수 있습니다. –

+0

@DaveChen PHP'exec()'이 (가) 차단하고 있습니다. node.js를 사용하면 각 요청을 포크하여 bash 스크립트의 개별 스레드를 실행할 수 있습니다. – Justin

답변

0

rexec 명령을 사용할 수 있습니다. rexec은 원격 명령을 실행하는 데 도움이됩니다.

rexec [ -abcdhns -l username -p password ] host command 

자세한 내용은 this을 참조하십시오.

+0

'rexec'은 SSH를 사용합니까? 나는 서버들이 어떻게 통신 하는지를 따라하지 않는다. 'web2'에 설치해야하는 데몬이 있습니까? – Justin

+0

'rexec'은 리눅스 명령이며 SSH를 사용하지 않습니다. 네트워크 서버에서 동일한 작업을 예약하여 백업 작업을 예약했습니다. 나는 정말로'rexec'이 어떻게 작동 하는지를 모른다. 단점은 사용자 이름과 비밀번호가 네트워크를 통해 일반 텍스트로 전송된다는 것입니다. –

+0

이 부분을 참조하십시오. http://jpsoft.com/help/index.htm?rexec.htm –

관련 문제