PHP 응용 프로그램에서 PhantomJS 64 비트를 사용하여 HTML 페이지를 동적으로 캡처하여 사용자에게 전자 메일로 보냅니다. 나는 그것을 전환하면 내가 명령 줄에 위의를 실행하지만, PHP 스크립트 exec
을 사용하여 명령을 실행할 때 종료 코드 (11)PHP + PhantomJS 래스터 화
을 전혀 출력 실패하고 반환 할 때
phantomjs rasterize.js "http://..." /path_to_images/image.png
이 방법은 잘 작동 32 비트 phantomJS 바이너리를 사용하면 명령이 성공하지만 오류가 Reference Error: can't find variable google
인 페이지부터 google JSAPI를로드하지 못합니다. 이는 페이지 콘텐츠가 모두로드되어 이미지로 캡처되지 않기 때문에 문제가됩니다. JSAPI는 HTTPS를 사용하여 포함됩니다. HTTP로 전환하면 참조 오류는 사라졌지만 렌더링 된 이미지는 모두 검은 색으로 나타납니다.
나는 php가 실행중인 사용자와 동일한 사용자로 명령을 테스트했다.
을 요약하면 :
command> phantomjs_64 rasterize.js "http://..." /path_to_images/image.png
OK
exec('phantomjs_64 rasterize.js "http://..." /path_to_images/image.png');
코드 (11)
command> phantomjs rasterize.js "http://..." /path_to_images/image.png
exec('phantomjs rasterize.js "http://..." /path_to_images/image.png');
불완전한 출력이
사람이 왜 기본 phantomJS을 알고 있나요 없음 출력, 종료하지 급한 rize.js 스크립트는 PHP에서 실행될 때 실패하거나 이에 대한 해결 방법이 있습니까?
여기에 오류 코드에 대한 정보가있을 수 있습니다. http://stackoverflow.com/questions/16190926/exec-exit-code-meaning-for-11 –
@BriceFavre 나는 그 질문을 보았는데, 그 코드를 설명합니다. 하지만 그것이 PHP exec와 커맨드 라인에서 왜 발생하는지 말해주지는 않습니다. sudo에 대한 암호 액세스 설정이 필요하지 않은 PHP에서 작동하게하려면 해결 방법이 필요합니다. –