2010-03-01 1 views
2

로컬 Linux 데스크탑에서 Apache와 PHP를 실행하고 있습니다. 내 PHP 스크립트는 "xcalc"를 실행하고 다음과 같습니다 : 나는 PHP 바이너리를 사용하여 PHP 스크립트를 실행하면PHP를 사용하여 로컬로 실행중인 Apache 웹 서버에서 X 응용 프로그램 시작

<?php 
    shell_exec("xcalc"); 
?> 

, 나는 바탕 화면에서 실행 xcalc를 참조하십시오. 아파치를 통해 동일한 스크립트를 실행하면 화면에 아무 것도 나타나지 않습니다. 나는 그것이 어디에서 실패하는지 알아낼 수 없다.

모든 X 설정이 올바른지 확인하기 위해 Apache의 사용자 및 그룹을 일반 사용자로 변경했습니다.

답변

3

xcalc는 표시 할 X 서버를 알기 위해 -display 옵션 또는 DISPLAY 환경 변수가 필요합니다. 셸에서 실행할 때 셸 환경에서 $DISPLAY을 가져 오는 것이 일반적이지만 Apache 웹 서버에는 일반적으로 이 설정되지 않습니다.

X 세션이 Apache 웹 서버와 동일한 사용자에 의해 실행되지 않는 경우 X는 X가 공유 비밀 (“ 마법 쿠키 ”)에 의존하기 때문에 X 인증 문제가 발생할 수 있습니다. $HOME/.xauthority X 세션에 로그인 한 사용자의 파일.

관련 문제