2017-09-13 19 views
0

다른 서버에서 MySQL에 액세스하기 위해 SSH 터널을 자체 파괴하는 방법은 무엇입니까? 여기PHP - MySQL 용 SSH 터널

exec('ssh -fNg -L 4343:127.0.0.1:3306 [email protected]'); 

$mysqli = new mysqli('127.0.0.1', 'dbuser', 'dbpass', 'dbname', '4343'); 

문제 해당 스크립트가 exec 명령을 한 후 응답입니다 :

현재 내 코드는 것 같습니다. 어떻게하면 나머지 스크립트를 실행할 수 있습니까? 그리고 스크립트가 끝나면 백그라운드 프로세스를 닫는 방법은 무엇입니까?

+0

는'모든 문자열로 출력 스트림의 반환 shell_exec shell_exec'을보십시오. 'exec' ***는 기본적으로 출력의 마지막 줄을 반환합니다 *** –

+0

여기서 문제는 exec/shell_exec의 출력이 필요 없다는 것입니다. 아이디어는 SSH 터널을 가지고있는 백그라운드 프로세스를 생성하고 PHP 스크립트가 실행되도록 "방해가되지 않도록 이동"하는 것입니다. – AltzeM

+0

'exec ('ssh -fNg -L 4343 : 127.0.0.1 : 3306 [email protected] &');' –

답변

0

그래서 연구를 마친 후 > /dev/null 2>/dev/null &을 명령 끝에 추가해야합니다.

전체 작업 예를 들어 라인은 다음과 같습니다

exec('ssh -fNg -L 4343:127.0.0.1:3306 [email protected] > /dev/null 2>/dev/null &');