[CentOS]在Linux部署项目时bcrypt_lib.node: invalid ELF header
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CentOS]在Linux部署项目时bcrypt_lib.node: invalid ELF header相关的知识,希望对你有一定的参考价值。
参考技术A 百度了一通,报错原因是每次 npm 安装 bcrypt 包后,都会对 bcrypt 进行编译,然而不同环境下编译的结果并不通用。在 Windows 或 macOS 环境下编译后,项目中的 node_modules 直接上传到「函数计算」的 linux 环境,就不适用了。解决办法很简单:在云服务器重新安装一遍即可(需确保说明文档中的安装依赖已准备妥当)
npm install bcrypt
node.bcrypt.js安装说明
第二次我碰到这个问题再安装 bcrypt 时,又报了 sh: centOS node-pre-gyp: Command not found 。
然后哐哐一通百度,跟着照做 npm install node-gyp -g 。
再 npm i bcrypt , node-pre-gyp install --fallback-to-build 倒是不报“找不到命令”的错了,只不过在 Using needle for node-pre-gyp https download 又卡着不动(忧桑,估计需要科学上网吧)。后来我试了下先卸载再安装,竟然神奇地可以了~
npm un bcrypt 卸载完按照shell提示 auto fix 了一下再 npm i bcrypt 的。
又可以愉快地玩耍了~
图文详解Linux基础经典教程(09)——部署项目至CentOS
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
概述
在之前的操作里,我们在CentOS中安装了JDK、Tomcat、MySQL。接下来,我们需要将JavaWeb项目部署至CentOS。
项目开发
请在IDEA中开发JavaWeb项目(非Maven)并确保其功能完善、使用正常。
数据库表;图示如下;
项目结构;图示如下:
界面展示;图示如下:
在完成以上工作后,我们开始将本地的JavaWeb项目部署至服务器。
数据迁移
在本环节中,我们将本地数据库中的数据迁移至CentOS上的MySQL数据库。
友情提示:
为简化操作,建议使用Navicat等数据库可视化工具。
主要步骤:
- 1、从本地数据库导出SQL
- 2、在CentOS上利用service mysqld start开启MySQL服务
- 3、在CentOS上创建新数据库;为方便部署建议新数据库名与原名保持一致
- 4、将SQL导入新建数据库
结果如下:
至此,在CentOS的MySQL数据库中已经有了studentinformationmanagement及其数据。
修改数据库连接配置
请在项目中修改与数据库连接相关的配置,将其改为服务器上数据库相匹配的参数。
数据库原配置;图示如下:
修改后的配置;图示如下:
项目打包
在本环节中,我们将JavaWeb打成war包。
请在Artifacts中选择即将打包的项目;图示如下:
开始打包;图示如下:
(可选项)修改包的名字及其保存路径;图示如下:
开始build,图示如下:
点击Build;图示如下:
打包完成后,查看打好的jar包;图示如下:
上传war包
将打好的war包上传至CentOS上的Tomcat的webapps目录;图示如下:
启动Tomcat
进入至/opt/apache-tomcat-8.5.59/bin目录利用./startup.sh命令启动Tomcat;命令如下:
cd /opt/apache-tomcat-8.5.59/bin
启动Tomcat;命令如下 :
./startup.sh
Tomcat启动后会自动解压war文件;图示如下:
(可选项)再次确认Tomcat、MySQL是否正常启动;命令如下:
netstat -tupln
访问项目
启动Tomcat后在浏览器中输入地址:http://192.168.6.150:8080/SIM/index.jsp 即可访问项目;图示如下:
至此,我们已经成功将JavaWeb项目发布至远程CentOS服务器。
查看Tomcat日志信息
在发布过程中可以通过查看Tomcat日志信息监测项目的启动情况;尤其是解决错误时就更加有必要了。
通常情况下,可在启动Tomcat后在其logs目录下查看Tomcat日志信息。
切换至logs目录,命令如下:
cd /opt/apache-tomcat-8.5.59/logs
查看日志,命令如下:
tail -f catalina.out
图示如下:
除此以外,还可多关注/opt/apache-tomcat-8.5.59/logs目录下的日志文件;图示如下:
简化操作的野路子
本项目并非利用Maven构建;所以,打包的过程略微繁琐。假若,使用Maven的方式构建项目则其打包过程便捷很多。
所以,刚才的过程也完全可以简化进行。
首先,请在本地打开编译后的代码;图示如下:
请复制StudentInformationManagement_war_exploded并将其重命名为sim;图示如下:
最后,请将sim文件上传至Tomcat的webapps目录再启动Tomcat即可。
这么做虽然简单也不用Tomcat在启动时解压;但是,不够专业有点野路子。
以上是关于[CentOS]在Linux部署项目时bcrypt_lib.node: invalid ELF header的主要内容,如果未能解决你的问题,请参考以下文章
将 Meteor 应用程序从 OS X 部署到 Linux 会导致 bcrypt 问题
Linux Centos 7 系统中部署项目到Tomcat中无法访问
无法在 Centos 服务器上安装 bcrypt node.js 模块