2014-09-11 4 views
0

저는 Windows 플랫폼을 사용 중이므로 app/webroot/phantomjs 및 동일한 폴더의 js에 phantomjs 실행 파일을 가지고 있습니다. 내가 PHP로 할 때 :exec() phantomjs가 실행되지 않고 오류가 표시되지 않습니다.

$response = exec($this->webroot . 'app/webroot/phantomjs/phantomjs getweb.js'); 

아무 일도 일어나지 않습니다. 이 내용은 js의 내용입니다.

console.log('Hello, world!'); 
phantom.exit(); 

절대 경로는 웹 페이지에서 온라인으로 실행해야하므로 절대 경로를 사용합니다.

편집 1 :

하는

$response = exec($this->webroot . 'app/webroot/phantomjs/phantomjs getweb.js 2>&1', $s, $o); 

     echo $response; 
     echo "<pre>"; 
     print_r($s); 
     echo "</pre>"; 

     echo "<pre>"; 
     print_r($o); 
     echo "</pre>"; 

내가 얻을 사용

Array 
(
) 

1 

편집 2 :

이 잘 작동 :

echo exec("whoami"); 

편집 3 : 이 아무것도하지 :

$response = exec($this->webroot . 'app/webroot/phantomjs/phantomjs getweb.js 2>&1', $s, $o); 
+0

오류보고를 활성화하고 스타우트 없습니다 파이프 sterr 시도하십시오 : http://stackoverflow.com/q/12199353 –

+0

오류보고를 활성화, 어떤 결과를 는 여기에 내가 생각 해낸 솔루션입니다. 2> & 1과 동일합니다. – Mariano

+0

'$ this-> webroot'에는 슬래시 만 있고 끝으로 슬래시가 들어 있는지 확인해야합니다. 전체 경로가 정확한 경로인지 확인하십시오 ('echo' it). getweb 스크립트에도 특정 경로가 필요합니까? –

답변

0

저도 같은 문제에 직면했다 .. 것은이 phantomjs이 모두에 대한 전체 경로를 필요로하지 않는다.

$getout = exec('D:\\xampp\\htdocs\\phantomjsdir\\phantomjs.exe D:\\xampp\\htdocs\\rasterisejsdir\\rasterize.js http://localhost/pagetobecaptured/test D:\\xampp\\htdocs\\outputfiledir\\test2.jpg "1800px*840px"',$o,$e); 
관련 문제