2016-07-19 4 views
1

좋아요, 그래서 gnome-terminal로 실행중인 VPS를 가지고 있고 다음 PHP 스크립트를 사용하여 원격 서버에서 명령을 실행하고 있습니다. WARNING ** : 열려있는 X 표시가 인수를 구문 분석하는 데 실패 할 수 없습니다 : 열 수 없습니다 나는 다음과 같은 오류원격 서버에서 gnome-terminal을 실행하십시오.

** (1952 그놈 터미널을) 얻을 스크립트를 실행

<?php 
include('Net/SSH2.php'); 
$ssh = new Net_SSH2('IP address'); 
if (!$ssh->login('root', 'rthtrhtrhrthrthrth')) { 
    exit('Login Failed'); 
} 

echo $ssh->exec('gnome-terminal -e java -jar run.jar --window-with-profile=b1dcc9dd-5262-4d8d-a863-c897e6d979b9'); 
?> 

디스플레이 :

gnome-terminal에서 실행하고 jar 파일을 열리는 원격 서버에서 명령을 실행하려고합니다. 쉘 명령을 원격 서버에서 실행하면 ssh에 연결하고 gnome-terminal 명령을 실행하여 해당 VPS에서 데스크탑 응용 프로그램을 엽니 다.

이것이 가능합니까? 아니면 제가 잘못하고 있습니까?

UPDATE는

퍼티에서

나는

<?php 
include('Net/SSH2.php'); 
$ssh = new Net_SSH2('IP address'); 
if (!$ssh->login('root', 'rthtrhtrhrthrthrth')) { 
    exit('Login Failed'); 
} 
echo $ssh->exec('export DISPLAY=:1'); 
echo $ssh->exec('gnome-terminal -e "java -jar run.jar"'); 
?> 

내가 '사용하여 내 웹 서버를 실행하려고 다음 명령

export DISPLAY=:1 
gnome-terminal -e "java -jar file.jar" 

하지만 여전히를 issueing에 의해 작동하도록 쪘 구만 여전히 X 디스플레이를 열 수없는 오류가 계속 발생합니다. 웹 서버에 아무것도 표시하지 않고 VPS로 전달하려고합니다.

+0

해당 서버에 ssh 연결을 수동으로 시도하고 코드를 실행하십시오. 실패하지 않으면 쉘 인수에 escapeshellarg()를 사용하십시오. –

+0

그것도 똑같은 일을 할 것입니다. @ NicolòCozzani – Xylate

+0

SSH를 통해 응용 프로그램을 열고 VPS의 gnome-desktop으로 전달했습니다. – Xylate

답변

0

VPS에 X가 실행되고 있습니까? 약간 다른 접근 방식을 제안합니다 : gnome-terminal을 실행하는 대신 SSH를 사용하여 직접 물건을 실행할 수도 있습니다. 자바가 완성 될 때까지 php가 멈추지 않을까 염려합니다. ssh에서 분리하려면 명령 끝에 "&"을 추가하십시오.

+0

예, 실행 가능합니다. 작업 및 VPS에있는 데스크톱 환경에서 응용 프로그램을 열지 만, 웹 서버에서 실행하려고 노력하고있어 그것과 함께 작동하도록 가져올 수 없다 디스플레이 : = 1 PHP 스크립트 내에서 – Xylate

+0

나는 원격으로 할 수 있어요 SSH를 통해 서버에서 응용 프로그램을 열면 그냥 내 PHP 스크립트로 작동시키지 못합니다. – Xylate

+0

그것은 X에 관한 허가 일이 될 수 있습니까? 옛날에는 "xhost +"를 온통 저질렀습니다. – Clusty

관련 문제