这篇文章是我最近搭建node服务器时所找的博文所有的方法,我将它统一起来方便查看,以下是所有有引用到的博文的链接
https://blog.csdn.net/zhangdaiscott/article/details/79639533
https://blog.csdn.net/sherry_chan/article/details/79053886
https://blog.csdn.net/qq_39817332/article/details/90696987
https://blog.csdn.net/feigning/article/details/89300077
https://www.cnblogs.com/i6010/articles/10857543.html
环境:
- 腾讯云服务器
- xshell
1. 安装node
进入xshell,输入一下命令
sudo su
cd /usr/local
apt install nodejs
//下载npm
apt install npm
//把npm换成国内源下载速度会变快
npm install -g cnpm --registry=https://registry.npm.taobao.org
2.安装express(有用到这个模块就下载)
cd /root
cnpm install express --save
//安装完后在/root下面会有node-modules文件夹
3.安装pm2(用来开启守护线程,即使关闭了xshell也会继续运行)
cd /root
cnpm install pm2 -g
4.安装Mysql
4.1安装
//安装服务端
apt-get install mysql-server
//安装客户端
apt-get install mysql-client
//安装python开发包
sudo apt-get install libmysqlclient-dev python3-dev
//安装mysqlclient
pip3 install mysqlclient
4.2更改数据库密码
输入以下指令查看数据库账号、密码 ,并记录
sudo cat /etc/mysql/debian.cnf
//一般用户名都是debian-sys-maint
//密码先复制下来,等会直接粘贴就行
4.3进入mysql数据库
mysql -u debian-sys-maint -p
//回车后输入密码(刚刚复制的密码,xshell不会显示出来)
4.5修改
use mysql;
//修改密码(修改用户名密码为root)
update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
//更新
update user set plugin="mysql_native_password";
flush privileges;
//退出
quit;
4.6配置mysql远程登录
//登录mysql
mysql -u root -p
//接下来授权一个用户可以远程访问(username、password换成上一部设置的用户名和密码)
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
//更新
FLUSH PRIVILEGES;
4.7更改mysql配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
//注释掉bind-address = 127.0.0.1
4.8重启mysql数据库
sudo service mysql restart
5.将项目发送到服务器
使用xshell自带的xftp或filezilla,将项目发送到**/root**目录下,如果没有权限就先发送到/home/ubuntu下然后用
cp -r /home/ubuntu/“项目文件名” /root
6.开启守护线程发布项目
cd "项目文件名"
pm2 start index.js //nodejs启动文件
7.开启端口号
加入腾讯云的控制台,找到你的服务器,加入,找安全组,添加端口
3306:mysql
22:ssh连接
//还有你项目监听的端口
至此文件便启动成功了,在自己的电脑上输入服务器的ip地址以及项目设置的端口号便可看到网页。
补充:
1.pm2的用法
npm install pm2 -g # 命令行安装 pm2
pm2 start app.js -i 4 #后台运行pm2,启动4个app.js
# 也可以把'max' 参数传递给 start
# 正确的进程数目依赖于Cpu的核心数目
pm2 start app.js --name my-api # 命名进程
pm2 list # 显示所有进程状态
pm2 monit # 监视所有进程
pm2 logs # 显示所有进程日志
pm2 stop all # 停止所有进程
pm2 restart all # 重启所有进程
pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程)
pm2 stop 0 # 停止指定的进程
pm2 restart 0 # 重启指定的进程
pm2 startup # 产生 init 脚本 保持进程活着
pm2 web # 运行健壮的 computer API endpoint
pm2 delete 0 # 杀死指定的进程
pm2 delete all # 杀死全部进程
2.mysql编码问题
首先登陆mysql的交互shell,输入下面的命令查看当前数据库的编码方式
show variables like '%character%';
从上面可以看出,mysql数据库装上之后初始并不均是utf8
退出刚才的交互shell,去修改下面的配置文件
输入下面的命令,打开第一个配置文件
sudo vim /etc/mysql/conf.d/mysql.cnf
在 [mysql] 标签的下一行添加下面的配置
default-character-set=utf8
输入下面的命令,打开第二个配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到 [mysqld] 标签,在其下一行添加下面的配置
character-set-server=utf8
配置文件修改成功之后,输入下面的命令重启mysql服务
sudo service mysql restart
重启之后再去查看数据库的默认编码方式
show variables like '%character%';