4.23 CentOS Node.js环境搭建+Nginx环境搭建+前后端重编译+MySQL安装与配置

一、Node.js 环境搭建
1、centos通过命令行下载NVM(nodejs版本管理),用于安装最新的node文件
NVM详情: https://github.com/creationix/nvm
在Centos服务器上安装输入指令
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
并保存到以下路径
在这里插入图片描述
执行 source .bashrc 生效环境变量
然后可以使用 npm指令了
先nvm install node
在这里插入图片描述
2、安装完NVM后,再安装cnpm(用于快速下载依赖包)
打开cnpm淘宝镜像官网
在这里插入图片描述
cnpm这个包会安装 .nvm文件夹下面。完毕!

二、Nginx环境搭建
1、需要用到 yum,(CentOS自带)
通过yum先安装一些nginx的依赖 -y表示同意
在这里插入图片描述
pcre* 提供许多库,nginx需要的依赖
在这里插入图片描述
上述2个依赖安装完成后就可以下载nginx
在这里插入图片描述
检测make和gcc是否存在,已存在
在这里插入图片描述
解压nginx压缩文件
在这里插入图片描述
进入nginx-1.12.2文件夹
在这里插入图片描述
./configure 检查配置能否生效。
make -j4 对nginx的源码进行编译
make install 进行安装
在这里插入图片描述
通过nginx -t 直接读取它的配置文件

制作软连接(即Window快捷方式),
cd /usr/bin可以查看用户指令
在这里插入图片描述
实际路径 + 连接指令
在这里插入图片描述
在当前usr/bin(用户指令集)路径下创建了一个,/usr/local/nginx/sbin/nginx的可执行文件。的快捷方式
在这里插入图片描述
通过回到相对路径root (cd) 启动nginx
再查看进程
在这里插入图片描述
通过nginx -s stop 停止进程
在这里插入图片描述
在这里插入图片描述
启动 nginx服务。发现客户端访问失败,经百度是安全组规则未配置http80
在这里插入图片描述

-------------------------------------------nginx配置部分
一、80端口基础配置
add_header Cache-Control “no-cache, must-revalidate”;
对http添加 不进行缓存 的配置。
add_header Access-Control-Allow-Origin *;
对nginx配置跨域请求
在这里插入图片描述

然后尽量关闭autoindex

二、yum安装git
在这里插入图片描述
此处对于我现在来说过于难(短期知识超负荷)
三、将ebook-app和node-ebook-app 文件夹分别放于CentOS系统里。
然后通过编译,分别启动前,后 端口 的代码。
在这里插入图片描述

A、前端部分进入ebook-app(CentoOS)
1、cnpm i 所有依赖。
2、运行 cnpm run build
3、mv指令移动dist目录
将打包后的文件上传到nginx的upload的book目录下。(前端已正式生产)
在这里插入图片描述

B、后端部分进入node-ebook-app(CentoOS)
1、cnpm i 所有依赖。
2、node app.js启动

注(客户端直接访问3000端口是不通的,需要配置阿里云安全组,但是其实没必要对外暴露3000端口,服务端自己可以请求自己就行,即3000端口只能在局域网中被访问到)
在这里插入图片描述
可以看到启动占用了终端,我们可以让启动在后台运行。
在这里插入图片描述
看,不会中断3000服务的连接。

四、安装MySQL服务(服务端)
1、yum -y install mysql-server(服务端)
2、安装好后,service mysqld status (查看mysql状态)
3、service mysqld restart (重启服务)
----注(若重新安装mysql,要先彻底删除mysql文件才可以正常restart mysql)
在这里插入图片描述

4、cat /var/log/mysqld.log |grep password(日志中查询,只打印密码)
5、mysql -u root -p 启动 mysql 并输入密码
—注 若复制密码错误
(((则百度重置mysql密码博客,(skip-grant-tables免密登录)后,
连接mysql,再flush privileges;再执行下面命令)))
在这里插入图片描述
(restart后可以直接进入 第五部分的3)

6、 alter user ‘root’@‘localhost’ identified by ‘密码’;
在这里插入图片描述
7、mysql连接成功

在这里插入图片描述

五、本地数据库数据导入远程服务端 开放3306端口
1、创建新安全组3306
2、客户端打开navicat,新建连接到服务端(会报错,连通,但是host不被允许)
在这里插入图片描述
3、回到服务端 在mysql服务下,输入命令 use mysql;
在这里插入图片描述
4、创建访问权限,服务端的root连接到哪个地址,就得把这个ip地址输入进来,该行命令%表示允许所以ip访问)
但是mysql8.0之后,必须加入 with mysql_native_password,如下
在这里插入图片描述
即,使用mysql_native_password这个插件来进行认证,如果不加,那么后续nodejs进行mysql连接的时候就会报错

注,要是之前误操作已经加入了一次’root’@’%’,需要将此用户移出
在这里插入图片描述
完毕后,再次尝试
在这里插入图片描述
5、赋予权限(开启数据库读写)
grant all privileges on *.* to ‘root’@’%’;
flush privileges;
在这里插入图片描述
导入sql文件。
对connect方法进行改写(目前非服务端的账号和密码)
在这里插入图片描述

前端部分重构没有问题。
主要是后端部分。
1、mysql的版本问题,以及8.0需要 mysql_native_password 库支持
2、添加用户组,需要use mysql内,create user ‘root’@’%’ …
3、误操作,或操作失误,使mysql库的user数据表已出错,需要drop该字段。比如drop user ‘root’@’%’
4、开启skip-grant-tables免密登录后,
进入mysql,再输入 flush privileges,刷新权限表,
再对用户root的密码进行修改,然后vim /etc/my.cnf将skip-grant-tables注释掉
最后需要 restart服务。才算修改完成
5、 改密码 修改权限 都需要 flush privileges

猜你喜欢

转载自blog.csdn.net/qq_40196738/article/details/89476040