Ubuntu 20.04 Azure VM安装Highcharts导出服务器时PhantomJS报错如何解决
解决Ubuntu 20.04 Azure虚拟机安装Highcharts导出服务器报错方案
核心报错原因
报错EACCES: permission denied是因为phantomjs-prebuilt包的安装脚本需要跨目录执行硬链接操作,全局安装时npm默认会降权执行脚本,导致无法访问/usr/local/lib/node_modules下的目标路径。
可执行解决方案
- 方案1:直接给安装命令添加权限参数
无需提前单独安装phantomjs,直接执行如下命令即可完成安装:
该参数会让npm保持root权限执行所有包的安装脚本,规避权限拦截问题。sudo npm install highcharts-export-server -g --unsafe-perm=true --allow-root - 方案2:先安装系统原生phantomjs再安装导出服务
如果方案1执行后仍报错,可先通过apt安装系统适配版的phantomjs,跳过npm自动安装phantomjs的步骤:- 安装系统依赖和phantomjs:
sudo apt update sudo apt install -y phantomjs fontconfig fonts-wqy-zenhei- 验证phantomjs安装状态:
正常返回phantomjs --version2.1.1即为安装成功。
3. 安装Highcharts导出服务,指定系统phantomjs路径:sudo npm install highcharts-export-server -g --unsafe-perm=true --allow-root --phantomjsPath=/usr/bin/phantomjs - 方案3:修改npm全局目录权限(适合长期使用的场景)
不想每次安装全局npm包都加sudo的话,可将npm全局安装路径切换到当前用户目录下:
配置完成后直接执行无sudo的安装命令即可:mkdir -p ~/.npm-global npm config set prefix '~/.npm-global' echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrcnpm install highcharts-export-server -g
验证安装结果
安装完成后执行如下命令,正常返回版本号即为安装成功:
highcharts-export-server --version
首次启动服务时需按照提示确认是否接受Highcharts许可协议,按指引操作即可使用。
内容的提问来源于stack exchange,提问作者Erwin1441
相关产品推荐
相关产品推荐

