我意识到“在 Heroku 上运行 PhantomJS”是一个相关但略有不同的问题,因为我正在尝试使用节点应用程序。
我在为节点应用程序部署 casperJS(基于 phantomJS)脚本时遇到问题。我尝试通过将 PhantomJS 64 位二进制文件放在我的应用程序/bin
目录中来部署到 Heroku,但是当我尝试运行 PhantomJS 时出现以下错误:
phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
根据我的阅读,这可以通过安装 QtWebKit 库来解决,但 Heroku 没有安装这个。是否有另一个我可以使用的托管服务提供商或者在 Heroku 上安装这个包的方法?
相关代码:
app.get('/', function(request, response) {
var sys = require('sys')
var exec = require('child_process').exec;
var child;
//works but gives error while loading shared library libqtwebkit.so.4
child = exec("phantomjs --version | tr -d '\n'", function(error, stdout, stderr) {
sys.print('stdout: ' + stdout);
sys.print('stderr: ' + stderr + '\n');
response.header('Content-Type', 'application/json');
response.send('_testcb(stdout:' + stdout + '\nstderr:' + stderr + ')', 200);
if(error !== null) {
console.log('exec error: ' + error);
}
});
});
我已经在 Nodester 上注册了 beta 测试,但他们的文档在这一点上仍然非常有限。
编辑:我可以通过简单地将 PhantomJS 的 lib 文件夹复制到我的节点应用程序的根目录来使其工作。