使用PHP的exec()给出错误:致命:没有这样的文件或目录; 你安装了吗?

我试图用PHP来exec()一个二进制casperjs

 exec('casperjs /var/www/mysite/application/phantomjs/test.js'); 

但我得到的错误

 Fatal: [Errno 2] No such file or directory; did you install phantomjs? 

CasperJS运行在PhantomJS之上,我手动安装并在/usr/local/bin/phantomjs/usr/local/bin/casperjs创build了一个链接。 所以我猜测casperjs在运行时会调用phantomjs。

但是,当我ssh进入服务器并运行它工作正常

 casperjs /var/www/mysite/application/phantomjs/test.js 

什么地方出了错? 我认为casperjs不能作为networking用户运行phantomjs ? 如果这是真的,那该如何解决呢?

只要尝试用程序的完整路径调用exec命令即可。 例如

 exec('/usr/local/bin/casperjs /var/www/mysite/application/phantomjs/test.js'); 

另外请确保您可以通过网络服务器执行该程序,特别是如果您使用php safe_mode on 。 看看safe_mode_exec_dir

我有完全相同的问题,并找到了一个工作解决方案在这里: https : //groups.google.com/forum/?fromgroups=#!topic/casperjs/92yUM9O0XjA