Linux服务器 前后端web项目部署

服务器及系统选择

服务器上学生党推荐使用阿里云ECS服务器,学生可以白嫖俩个月的服务器用,后面听说还可以免费续费,操作系统主要有Windows和Linux两个操作系统,根据自己的需求选择相对应的系统,本次操作中我使用的镜像是CentOS 7.3 64位

关于两个系统在阿里云上的特点,大概如下:

Windows系统:

  1. window系统内含正版激活,可支持SQLServer等数据库(需自行安装)。
  2. 可以使用远程桌面对服务器进行操作。
  3. SQLServer数据库操作(需自行安装)。

Linux系统:

  1. 是当前最流行的操作系统,有强大的安全性和稳定性。
  2. 免费且开源,轻松建立和编译源代码。
  3. 通过SSH方式远程访问您的云服务器。
  4. 一般用于高性能web等服务器应用,支持常见的PHP/Python等编程语言,支持MySQL等数据库(需自行安装)。

一、连接服务器

因为我当前操作的系统是window,要连接Linux系统就要借助xshell和xftp工具。xshell可以在windows界面下来访问远程终端不同系统下的服务器,可有达到远程控制终端的目的。xftp可以跟服务器进行连接,安全有效的进行数据的传输。

在这里插入图片描述

关于xshell和xftp的使用,百度一下就会了

  1. 登陆阿里云官网 > 控制台 > 云服务器 > ECS > 实例 可以看到自己所购买的服务器
    在这里插入图片描述
  2. 重置实例密码,随便打一个自己记得住的就好了(这个密码连接要用!!!!!!)
    注:远程连接是web端的连接,输入密码就好
  3. 配置安全组规则,进入安全组之后点击列表 - 操作 - 配置规则,再点击上方添加安全组规则
    在这里插入图片描述
    (1) 协议类型:自定义TCP
    (2) 端口:默认 22/22
    (3) 优先级: 100
    (4) 授权类型: IPv4
    (5) 授权对象:0.0.0.0/0
  1. xshell新建会话,name随便起一个,协议Linux系统为 SSh ,主机就是上图实例中的IP地址,端口没有修改过的话就是默认的22端口
    在这里插入图片描述
    5.用户身份验证,用户名root,密码就是你的实例密码
    6.页面上出现:Welcome to Alibaba Cloud Elastic Compute Service 就是连上服务了
    在这里插入图片描述

xftp的连接方法一致,协议为SFTP

二、安装配置环境

xshell常用命令-参考学习
本次我部署的项目:前端vue.js + 后端Node.js + 数据库mysql8.0 + nginx

首先下载yum,在linux中经常使用yum来进行软件的安装、更新与卸载。

1. 下载nodejs

  1. 在xshell命令行里输入:yum install xz.x86_64
  2. 打开 nodejs 官网查看最新版本的下载,本次系统在CentOS 64位上安装,所以我们选择的是64位二进制安装文件(Linux Binaries x86/x64),复制链接地址
    在这里插入图片描述
  3. xshell中输入以下命令:
    wget https://nodejs.org/dist/v8.9.1/node-v8.9.1-linux-x64.tar.xz
    
  4. 安装完成后,输入下面命令,进行解压缩:tar xvf node-v8.9.1-linux-x64.tar.xz
  5. 修改文件名:mv node-v8.9.1-linux-x64 nodejs
  6. 验证:cd nodejs/bin => 然后 ./node -v
>    返回根目录cd/,node和npm设置软连接
>    ln -s /root/nodejs/bin/node /usr/bin/
>    ln -s /root/nodejs/bin/npm /usr/bin/
  1. 打开文件: vim /etc/profile
  2. 在文件末尾加三行语句:
    export NODE_HOME=/usr/local/node
    export PATH=$PATH:$NODE_HOME/bin
    export NODE_PATH=$NODE_HOME/lib/node_modules
    
    加完按ESC键和输入保存:wq
  3. 执行:source /etc/profile,立即加载资源
  4. 检测 node 和 npm ( node 检测如上)
    在这里插入图片描述

2. 下载mysql 8.0

Linux 安装 MySQL 数据库
可能找不到初始密码,输入vi /etc/my.cnf,在[mysqld]下添加skip-grant-tables,再次输入mysql -u root -p,直接回车就可以进入mysql服务,此时就可以修改密码。修改密码完成后记得删掉刚刚添加的skip-grant-tables,记得重启mysql服务。

3.下载nginx

  1. 安装依赖包:
# 安装过即可省略
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
  1. 创建文件夹nginx下载并解压安装
cd /usr/local
mkdir nginx

nginx下载地址点击下载
下载之后用xftp传到nginx文件夹,然后cd到nginx文件夹下,解压
tar xvf nginx压缩包名.tar.xz

  1. cd到解压后的文件夹里,输入一下代码
./configure
make
make install
  1. 以上步骤完成后,cd到nginx对应的sbin文件夹下,输入启动命令./nginx

在这里插入图片描述
(1) nginx默认配置是80端口,输入对应域名如有出现nginx页面,则配置成功。配置失败可能是防火墙开启,并未给防火墙开启80端口
(2) 防火墙添加端口命令:firewall-cmd --permanent --zone=public --add-port=80/tcp
(3)查看防火墙是否开启端口命令:firewall-cmd --query-port=80/tcp
(4)操作完成后重启防火墙服务:systemctl restart firewalld.service
我是直接关闭防火墙的,省略这些操作

  1. nginx常用命令:
# ./nginx   #启动
# ./nginx -s stop  #停止
# ./nginx -s quit  #退出
# ./nginx -s reload  #重启 

6.nginx开启自启动

vim /etc/rc.d/rc.local
加一句/usr/local/nginx/sbin/nginx(即sbin路径)

三、部署web项目

1. 前端部署

  1. 使用 webpack 打包 vue 项目 npm run build

  2. 打包后的 dist 文件夹上传至服务器,我比较喜欢直接放在安装nginx的文件夹里,所以使用 xftp 把文件夹拉到刚刚下载nginx的路径下,即:/usr/local/nginx

    (忘记目录可用ps -ef | grep nginx 查看)

  3. 输入vi /usr/local/nginx/conf/nginx.conf 或者在xftp进入对应路径直接改

    (只看server)

server {
        listen 80;
               
        # 默认localhost
        server_name  localhost;
      
        location / {
		    root dist; // 获取文件的根目录
		    index  index.html index.htm; // 接上一行
        }
		...
}
  1. 重启生效: nginx -s reload
  2. 在阿里云实例 安全组规则 根据你的配置添加端口规则
    在这里插入图片描述

2. 后端部署

后端我项目使用的是nodejs开发,打包即把除了 node_modules 的文件使用xftp放到 Linux 服务器上,我依旧喜欢放在nginx隔壁,随便 mkdir 一个文件夹起个名字放到里面,然后使用 xshell 输入命令cd 到对应的文件夹里,输入命令npm install or cnpm install

安装依赖包完成之后 输入 npm start 运行后端,假若运行报错,很可能是依赖包装的不好,建议删了再装,又或者是后端代码code问题,可以使用 cat ‘文件name/log’这个命令查看日志中的报错,也可以在xftp中打开查看

1. 前后端项目的 ip 要和服务器的ip对上!!!!!!
2. 后端启动设置的端口不能和前端一致,设置端口记得netstat -ntlp 查看一下端口是否被占用,占用选择换端口或者kill 端口

四、成功展示

在这里插入图片描述

补充:项目中mysql操作中如果出错查询group by 的错误,是因为mysql 8.0 新版本出现group by 语句不兼容问题,mysql5.7及以后的版本 select查询字段未出现在group by 中是会报错的

解决方法:

  1. 修改my.cnf配置文件,找到 mysql8 的安装位置,找到my.cnf,忘了一样which mysqld查找路径,mysqld 的路径 --verbose --help |grep -A 1 'Default options'出来的路径就是my.cnf的路径
  2. 输入vim my.cnf
  3. 在打开的my.cnf配置文件中添加
# sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  1. 保存重启mysql
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值