PhantomJS exited with return value 127

PhantomJS exited with return value 127

问题:

在阿里云的服务器上使用 nodejs webshot 生成图片的文件一直是大小为0的情况。

使用npm安装webshot安装需要的包:

npm install webshot 这个命令会自动安装webshot的以来包, 包括PhantomJS的包。

但是问题来了, 自己的mac电脑没有问题, 自己的虚拟机中的linux运行也是没有问题 的。 但是吧项目部署到阿里云的linux服务器就会出现上面的问题,图片的大小为0的情况。起以为是权限的问题,但是图片是生成了, 只不过大小为0, 排除了权限的问题。

查找问题:

百度, google,各路招式都使用上了, 说是PhantomJS的问题, 那就去看看是不是PhantomJS的问题,(http://phantomjs.org/documentation/)[http://phantomjs.org/documentation/] , 看到这里发现一段代码:

On Debian-based distro (tested on Ubuntu 14.04 and Debian 7.0), run:

sudo apt-get install build-essential g++ flex bison gperf ruby perl \
  libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev \
  libpng-dev libjpeg-dev python libx11-dev libxext-dev

On Fedora-based distro (tested on CentOS 6), run:

sudo yum -y install gcc gcc-c++ make flex bison gperf ruby \
  openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel \
  libpng-devel libjpeg-devel

尝试解决问题:

阿里云用的是center的服务器, 果断执行地二段代码:

sudo yum -y install gcc gcc-c++ make flex bison gperf ruby \
  openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel \
  libpng-devel libjpeg-devel

测试:

var webshot = require('webshot');
var fs      = require('fs');

var renderStream = webshot('http://www.baidu.com');
var file = fs.createWriteStream('baidu.png', {encoding: 'binary'});

renderStream.on('data', function(data) {
        console.log(data);
  file.write(data.toString('binary'), 'binary');
});

renderStream.on('error', function(err){
        console.log(err);
})

webshot('<html><body>Hello World</body></html>', 'hello_world.png', {siteType:'html'}, function(err) {
  // screenshot now saved to hello_world.png 
  console.log(err);
});

renderStream.on('end', function(){
        console.log('file is downloaded');
})

发现文件出现了, 而且大小正常。

drwxrwxrwx  3 root root  4096 3月   5 13:07 .
drwxr-xr-x  6 root root  4096 3月   5 11:53 ..
-rw-r--r--  1 root root 19109 3月   5 13:04 baidu.png  //正常文件
-rw-r--r--  1 root root 15177 3月   5 13:04 hello_world.png //正常文件
-rwxrwxrwx  1 root root   613 3月   5 12:33 index.js
drwxrwxrwx 92 root root  4096 3月   5 12:38 node_modules
-rwxrwxrwx  1 root root   258 3月   5 11:55 package.json
-rwxrwxrwx  1 root root 25310 3月   5 11:55 package-lock.json

最后解决问题

作为程序员出现问题不可怕,问题是怕貌似没有问题,但是问题就是有找不到。

猜你喜欢

转载自my.oschina.net/anziguoer/blog/1629709