제 생각 엔 노드가 설치되어 있다고 가정합니다.
먼저, 명령 줄에서 php를 실행하고 있습니까? 나는. bash 쉘에 php test.php
으로. 그렇다면 아래 명령을 그대로 실행할 수 있습니다. 웹 서버를 통해 환경이 다를 수 있습니다. 먼저 phpinfo();
script을 만들고 나서 shell_exec()
명령을 통해 문제 해결 명령을 실행하십시오. 그러나 그것이 고통 인 것처럼 나는 명령 행에서 먼저 작동하게하고, 웹 서버를 통해 실행될 때 동작이 다른 경우에만이를 뒤죽박죽으로 처리한다. (BTW, 당신은 cron 작업에서 실행하는 경우, 다시, 환경은 다소 차이가있을 수 있습니다. 그러나이 명령 줄에서 작동하지만 크론에서 작동하지 않는 경우이 걱정 만.)
문제 해결 hello.js
쉬운 것. 스크립트가 어디서나 node
을 참조하지 않는지 확인하십시오. 또한 노드 모듈을 사용할 수 없음을 기억하십시오. 따라서 거기에 있어서는 안되는 명령어 인 require()
을 찾으십시오.
bash는 아무것도가 있는지
실행 printenv | grep -i node
쉘의 문제를 해결합니다. 그러나 PHP가 쉘 명령을 실행할 때 다른 파일도 실행됩니다. 따라서 /etc/profile
과 ~/.bash_profile
을 확인하십시오. /etc/profile.d/
, /etc/bashrc
및 ~/.bashrc
도 확인하십시오. 당신은 기본적으로 node
을 언급하는 것을 찾고 있습니다.
문제 해결 phantomjs/casperjs 당신이 phantomjs 및 casperjs를 설치 했는가
? 실제 바이너리는/usr/local/bin 아래에 있거나 심볼릭 링크이거나 bash 스크립트이다. 예 : 내 컴퓨터에서 :
lrwxrwxrwx 1 darren darren 36 Apr 29 2014 casperjs -> /usr/local/src/casperjs/bin/casperjs
lrwxrwxrwx 1 darren darren 57 Apr 29 2014 phantomjs -> /usr/local/src/phantomjs-1.9.7-linux-x86_64/bin/phantomjs
을 그리고 각 파일 확인 :
cd /usr/local/bin
ls -l casperjs phantomjs
은주는 반면,
head /usr/local/src/casperjs/bin/casperjs
head /usr/local/src/phantomjs-1.9.7-linux-x86_64/bin/phantomjs
첫 번째 날 캐스퍼 실제로 파이썬 스크립트 #!/usr/bin/env python
입니다 이야기를 두 번째는 정크로 화면을 채우며 이진 실행 파일이라고 알려줍니다.
혹시'#/usr/bin/env node'를 hello.js의 첫 번째 줄로 정의 했습니까? CasperJS는 노드가 아닌 PhantomJS 실행 환경에서 실행됩니다. 일반적으로 노드에 대한 참조가 없습니다. –
감사합니다. @ArtjomB. 네가 제공 한 전화에 익숙하지 않아. 캐스퍼 스크립트 맨 위에 붙여 넣기 만할까요? –
아니요, 그러지 마세요. 노드 참조의 출처를 모르겠습니다. –