vue+node.js 发布到阿里云
- 租服务器
- 注册域名
- 域名解析
- 网站域名备案
- 使用xshell和xftp连接服务器
- 安装环境 node+mysql+pm2+nginx
- 发布项目
1.租服务器
登陆阿里云官网购买 (一般都有活动页面的 进去买就行来)
https://www.aliyun.com/purchasing/2021?spm=5176.19720258.J_2937333540.7.7b812c4a2oPC0n&scm=20140722.B_6189726.P_3826.MO_402-ST_3764-ID_22402-CID_22402-V_1
成功进入控制台可以看到
2.注册域名
进到里面按照操作 一路下去
3.域名解析
一般进入这里域名需要认证审核1~2个工作日,不过看情况的 我的过来半小时就过了
4.网站域名备案
https://beian.aliyun.com/
域名的实名认证通过后需要2-3天后才能备案
5.使用xshell和xftp连接服务器
- 网上下载 xshell和xftp,密码就是你得实例密码
- xshell 连接服务器
连接成功,第一次会让你保存个什么,直接保存就好
- xftp 连接,第一次会让你保存个什么,直接保存就好
6.安装环境 - 安装node 确保版本在10左右(不然之后安装pm2会报node和npm版本太低)
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash
再更新下gcc
sudo yum install gcc-c++ make
sudo yum -y install nodejs
- 安装nginx
1.下载
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
2.解压
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
3.配置,安装
./configure
make
make install
whereis nginx
4.启动、停止、重启nginx
cd /usr/local/nginx/sbin/
./nginx
ps aux|grep nginx
5.重启nginx
./nginx -s reload
6.开机自启动
vi /etc/rc.local 输入字母i出现—INSERT—,按键盘上下键控制光标
/usr/local/nginx/sbin/nginx 黏贴上去
按esc键退出,输入强制保存退出命令::wq!
输入ip看效果:不用带端口号
- 安装mysql(这一步遇到了挺多坑得)
https://www.cnblogs.com/wangpeng00700/p/13539856.html
1.下载mysql安装包到 /usr/local/ 目录
[root@wangpeng ~]# cd /usr/local/
[root@wangpeng local]# wget https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
2.解压并删除原有压缩包,解压后重命名为mysql
[root@wangpeng local]# tar -zxvf mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
[root@wangpeng local]# rm -rf mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
[root@wangpeng local]# mv mysql-5.6.45-linux-glibc2.12-x86_64/ mysql
3.可以看到在 /usr/local/ 目录下,有个mysql文件夹,然后开始mysql用户组和mysql用户,添加完使用groups mysql查看是否添加成功
[root@wangpeng local]# groupadd mysql
[root@wangpeng local]# useradd -r -g mysql mysql
[root@wangpeng local]# groups mysql
4.修改mysql目录拥有者为刚建立的mysql用户
[root@wangpeng local]# cd mysql/
[root@wangpeng mysql]# chown -R mysql:mysql ./
5.MySQL 初始化 修改mysql目录拥有者为root用户,修改data目录拥有者为mysql
[root@wangpeng mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
[root@wangpeng mysql]# chown -R root:root ./ && chown -R mysql:mysql data
(这里会报错)
报错解决得:(具体原理也不是那么清楚)
yum -y install autoconf
yum install libaio* -y
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
/usr/local/mysql/support-files/mysql.server start
6.启动mysql ,修改root密码,成功登陆
[root@wangpeng mysql]# ./support-files/mysql.server start
[root@wangpeng mysql]# ./bin/mysqladmin -u root password ‘000000’
[root@wangpeng mysql]# ./bin/mysql -h127.0.0.1 -uroot -p000000
第二步报错:'Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
解决:建立软连接:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
7.linux登陆成功之后,开启远程登陆,刷新权限
mysql> grant all privileges on . to root@’%’ identified by ‘000000’;
mysql> flush privileges;
8.MySQL设置开机自启
[root@wangpeng /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@wangpeng /]# chmod +x /etc/init.d/mysqld
[root@wangpeng /]# chkconfig --add mysqld
navcat 尝试连接
- 安装pm2管理进程
npm install -g pm2
pm2 list查看所有进程
7.发布项目
1.发布node服务(这里可能需要打包,没怎么研究,我是直接把整个项目丢服务端了)
在nginx目录下创建了一个service文件夹放置服务
将本地node项目压缩zip 传输上去,然后服务端用xshell 来用指令解压, 这边服务端如何解压zip 可以百度下,需要安装个插件,然后到node服务得目录下 运行指令解压
2.配置nginx文件
目录:/usr/local/nginx/conf/nginx.conf
1.将文件传输得本地
上面listen:端口必须在你得安全组里
server_name:Ip 可以localhost
/api/,反向代理接口(这个需要你在项目中接口上都带有/api/,否则不用配置)
本地启动项目看能否访问
3.pm2启动node服务
cd到node服务目录,pm2 start index.js
4.上传前端项目
目录:/usr/local/nginx/html
将你vue打包后得dist文件改名后放到此目录下
然后直接访问http://47.113.216.228/myself/#/index.html
问题:白屏
巨坑:后来发现 链接整错了,http://yangjieblog.cn/myself/index.html#/index/home router模式设置为hash