2009-03-16 4 views
5

헤드리스 서버에서 파이어 폭스를 실행하여 웹 사이트의 스크린 샷을 찍으려고합니다.PHP와 Xvfb 사용

"DISPLAY = : 12 firefox -saveimage http://www.google.com/"을 사용하여 터미널에서이 작업을 수행 할 수 있습니다.

문제는 시스템 ("DISPLAY = : 12 firefox -saveimage http://www.google.com")을 수행하려고 할 때입니다. 작동하지 않습니다. 나는 정상적인 쉘 환경에서 실행되지 않는다는 느낌을 가지고있다. 나는 더 나은 판단에 반하여 아파치 사용자에게 실제 쉘을 주었다. 만약 내가 아파치에 su 명령을 실행하고 모든 것이 잘되고 예상대로 작동하지만 다시 시스템 호출에서 작동하지 않습니다. 모든 통찰력은 대단히 환영합니다.

답변

0

httpd의 환경에 의해 충족되지 않은 쉘 사용자로 설정 한 환경 변수에 대한 종속성이 가장 높습니다. 환경과 함께 어떤 영웅을하기 전에, 나는 당신의 직업에서 stderr를 캡쳐 (예를 들어, 2>/tmp/imgcaperrlog)하고, 불만이 있는지를 확인하는 것이 좋습니다.

+0

나는 총을줬고 작동하지 않았다. \ – William

+0

좋아, 두 번째 버전. – chaos

+0

나는 그것을 피곤하고 심지어 실행되지 않습니다. 그게 내 생각에 PHP가 시스템 콜을 실행하는 환경이 얼마나 다른지를 생각하게 만든다. – William

3

해결책을 찾았습니다.

나를 위해 호출 할 쉘 스크립트를 만들어야했습니다. 잠시 동안 놀고 나면 스크립트 상단에 export HOME="/var/www/"을 추가 한 후 작동하고 있습니다.

다른 사람에게 도움이되기를 바랍니다.

+0

+1 솔루션을 보완하기 위해 –