一、Node.js 环境搭建
1、centos通过命令行下载NVM(nodejs版本管理),用于安装最新的node文件
NVM详情: https://github.com/creationix/nvm
在Centos服务器上安装输入指令
并保存到以下路径
执行 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 检查配置能否生效。若报错。如下图
安装pcre-devel解决问题
yum -y install pcre-devel
安装zlib-devel解决问题
yum install -y zlib-devel./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端口基础配置
先对user 进行授权
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(服务端)
若显示 No package mysql-server。
CentOS7下解决yum install mysql-server 异常:No package mysql-server
available.问题 yum安装mysql-server没有可用包问题解决方法:step 1: wget
http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpmstep 2: rpm -ivh mysql-community-release-el7-5.noarch.rpm
经过以上两个步骤后再次执行:yum 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’@‘%’,需要将此用户移出
同步修改 root 登录密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'Shilu0706.'
注:5.0+版本mysql
直接修改user表即可:
登录MySQL mysql -u root -p密码
执行 use mysql;
执行update user set host =‘%’ where user = ‘root’;执行会报错,不影响结果
执行flush privileges;
5、赋予权限(开启数据库读写)
grant all privileges on *.* to ‘root’@‘%’;
flush privileges;完毕后,再次尝试
导入sql文件。
对connect方法进行改写(目前非服务端的账号和密码)
完整开放数据库权限命令:
create user 'root'@'%' identified with mysql_native_password by 'root';
grant all privileges on *.* to 'root'@'%';
flush privileges;
前端部分重构没有问题。
主要是后端部分。
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
MYSQL8.0 安装
mysql 8.0.20 winx64.zip压缩版安装配置方法图文教程