2009-12-17 4 views
0

문제가 있습니다.이상한 프로그램 호출 오류

#!/bin/sh 
cd /absolute/path/html2imagev3 
LD_LIBRARY_PATH=.:/usr/lib:$LD_LIBRARY_PATH xvfb-run ./html2image $1 $2 

그것은 다음과 같이 실행 :이 문제없이 작동

/path/to/convert 'http://www.google.com' /tmp/google_screen.jpg 

을 나는 html2image를 사용하여 주어진 JPG 파일에 주어진 HTML 페이지 (URL)를 변환하는 스크립트를 만들었습니다. 내가 사용이 스크립트를 호출 할 때 PHP는, 그러나,

system('./convert ' . $url . ' ' . $file); 

는이 오류를 얻을 :

Xlib: extension "RANDR" missing on display ":99.0". 
current dir: /absolute/path/html2imagev3/libxpcom.so 
Failed to get HOME 

가 어떻게이 문제를 해결할 수 있습니까?

편집 : 수정했습니다. 도와 주셔서 감사합니다. 변환 스크립트 프로그램을 가정 VAR을 추가함으로써 은 실행 :

HOME=/tmp LD_LIBRARY_PATH= ... 
+1

나는 X 서버/클라이언트에 익숙하지 오전하지만 Xvfb가-run'는 PHP에서 호출 할 때 표시가없는 X 클라이언트를 엽니 다'처럼 보인다. 따라서 R 및 R 확장 (크기 조정 및 회전)을 시작할 수 없습니다. 이 확장은 아마도 이미지를 준비하는 데 필요할 것입니다. 무엇을해야할지 모르겠다. –

답변

0

그냥 시작 스크립트에서 홈 VAR를 초기 설정 해결책이었다.

0

글쎄, 당신의 xvfb-run 스크립트는 본질적으로 연결된 디스플레이를 가진 X11 서버입니다 Xvfb가,는 X 가상 프레임 버퍼를 시작합니다. X11 프로토콜에는 많은 확장 기능이 있으며 모든 X 서버가 지원하지는 않습니다. 이 경우 귀하의 html2image 스크립트가 Pekka가 지적한대로 특정 확장 (RANDR 또는 "R 및 R"확장자)을 요청하고 찾을 수 없습니다. 사용자로 로그인 할 때, 당신은 PHP에서 실행중인하지 않을 경우이 작동하면 당신의 PHP 스크립트는 다른 환경으로 실행하기 때문에

, 그것은 아마. 나는 Xvfb가 영향을 미칠 수있는 모든 환경 변수를 모르겠지만, 당신이 RANDR 확장을 가능하게 명시 적으로 시도 할 수도처럼 아마도 같은으로 보인다

 
xvfb-run -s "+extension RANDR" ./html2image $1 $2 
+0

-s "+ 확장자 RANDR"이 도움이되지 않습니다. 어쨌든 고마워. – VDVLeon

+1

요점은 여전히 ​​유효하지만, PHP를 실행하는 환경에 관한 것이 Xvfb와 다른 동작을 일으키는 것입니다. 컴퓨터 환경에 대한 자세한 정보가 없으면 마술처럼 문제의 원인을 추론 할 수 없습니다. –

+0

데비안 4 서버 (X11 서버가 설치되지 않음)를 실행 중입니다. 그래서 Xvfb를 사용합니다. 하지만 내 컴퓨터 환경과 관련된 것은 무엇입니까? – VDVLeon