从购买服务器到项目部署全流程

咖喱给Gay2022年3月21日
大约 5 分钟

分布式文件上传服务器

原博客链接:http://www.bestwyy.xyz/fuwuqi/bushu.htmlopen in new window

从购买服务器到项目部署全流程

注:此篇大致摘自上上级学长leviopen in new window 经历相似并防止自身之后遗忘,写下此篇。

前期准备

  • 💰 当然是用来买服务器啊
  • Termius ✅ 「MacOS软件-用于连接到服务器」/目前在用bitvise
  • Navicat Premium ✅ 「全平台软件-用于连接数据库」
  • Visual Studio Code ✅ 「全平台软件-yyds」
  • 完成的前端项目「vue」
  • 完成的后端项目「JFinal」

购买服务器

配置服务器

服务器整到手后先配置远程连接的密码,然后用「Termius」连上服务器,开始进行配置 安装nginx反代工具

sudo apt-get install nginx  # 安装nginx

nginx的基本操作

/etc/init.d/nginx start #启动
/etc/init.d/nginx reload #重启
/etc/init.d/nginx stop #停止

sudo service nginx start    # 启动
sudo service nginx reload   # 重载
sudo service nginx restart  # 重启
sudo service nginx stop     # 停止

sudo /usr/local/nginx/sbin/nginx -v  # 查看版本
sudo /usr/local/nginx/sbin/nginx     # 启动
sudo /usr/local/nginx/sbin/nginx -s stop   # 停止
sudo /usr/local/nginx/sbin/nginx -s reload # 重启

由于这次配置的是基于vue的单页面应用,所以要对nginx进行配置修改
在本地新建一个 eta_vue.conf 文件,写入以下内容

server {
    #服务启动时监听的端口
    listen 80 default_server;
    listen [::]:80 default_server;
    #服务启动时文件加载的路径
    root /var/www/html/eta_vue;
    #默认加载的第一个文件
    index index.php index.html index.htm index.nginx-debian.html;
    #页面访问域名,如果没有域名也可以填写_
    server_name www.632891553.xyz;

    location / {
        #页面加载失败后所跳转的页面
        try_files $uri /index.html;
    }
    
      
    #以下配置只服务于php
    # 将PHP脚本传递给在127.0.0.1:9000上监听的FastCGI服务器
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # With php7.0-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    # 如果Apache的文档为root,则拒绝访问.htaccess文件
    location ~ /\.ht {
        deny all;
    }
}

通过「Termius」的SFTP将上面的文件放入服务器的 /etc/nginx/conf.d 路径下
并将 /etc/nginx 下的 nginx.conf 文件中最后一行的默认配置注释掉(如下图)
image.png
修改完成后重启一次nginx
将打包好的前端项目放入 /var/www/html/eta_vue 文件夹下
进入浏览器,地址栏输入服务器ip,能看到前端页面就算配置好了

安装数据库


数据库安装很方便只,需要以下几条命令

sudo apt-get install mysql-server

apt-get install mysql-client

sudo apt-get install libmysqlclient-dev

安装好后用下面的命令来初始化安全设置

mysql_secure_installation

会询问是否执行以下几步操作,为了方便之后数据库管理,先选择开放远程登陆许可

  • 为root用户设置密码

  • 删除匿名账号「是」

  • 取消root用户远程登录 「否」

  • 删除test库和对test库的访问权限 「是」

  • 刷新授权表使修改生效 「是」

连接数据库


连接数据库前要先检查下3306端口是否可用 附上教程(opens new window)open in new window
教程中一些关于「vim」的操作可用参考我的另一篇指南 Vim 基础open in new window
端口开启后千万要记得去控制台开启3306端口!! image.png

远程mysql出现10061_MySQL远程连接时出现10061错误时的解决方法

需要修改MySQL的某个配置文件的配置代码,即my.ini文件中的“bind-address = . . . .”,将“. . . .”修改为“0.0.0.0”,于是乎,操作之。利用“locate”命令,并没有发现my.ini文件,继续了解,此属性配置在一个名为“my.cnf”的文件中。 (现在阿里云和腾讯云都存在conf.d和mysql.conf.d中的四个文件里,我在mysql.conf.d中的mysqld.conf里) 修改后保存,然后执行重启命令:

service mysql restart

但报错代码为1698,大部分1000+报错都可以用新建用户解决:

#创建用户
mysql> CREATE USER 'name'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
#赋权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'name'@'%' WITH GRANT OPTION;
flush privileges;// 刷新权限,使其生效。
mysql> exit;
service mysql restart //重启MySQL服务

注意:MySQL8.0以上密码策略限制必须要大小写加数字特殊符号!

执行上述命令后,再次进行远程连接,便连接成功。

记得用户名密码用新建的。

后记,用新用户连接是匹夫行为,还得改root。

1、登录Mysql

sudo mysql -u root -p

2、查看user表(错误发生的原因就是root的plugin设置错误)

select user, plugin from mysql.user;

3、修改root的plugin为自己的密码

update mysql.user set authentication_string=PASSWORD('your passwd'), plugin='mysql_native_password' where user='root';

4、刷新

flush privileges;

5、把后端resource中config.properties下的连接数据库密码也修改为步骤3的密码(如果一致请忽略)

部署后端


首先利用 apt-get 指令快速安装好 jdk1.8

apt-cache search java8

结果中列出了安装包库中存在的包,选一个你想安装的版本。

我们这里选的是第一个:openjdk-8-jdk 安装命令:

sudo apt-get install openjdk-8-jdk

然后把打包好的后端项目(maven直接package就行)上传至服务器的任意目录下(理论上)
解压文件

cd /home/cxxy/(你的目录)
tar -zxvf ETA6-release.tar.gz

修改解压出来的文件里的数据库配置、undertow端口号
启动项目

 cd /home/cxxy/ETA6(解压后的目录)
 ./start.sh start

关闭项目「重新部署前建议先关闭」

 cd /home/cxxy/ETA6
 ./stop.sh stop

解决跨域


作为前后端分离项目,跨域问题必须克服
首先修改后端项目运行的端口「默认的80端已经被nginx占用了」
服务器 /home/cxxy/ETA6 目录下,修改 undertow.txt

评论
Powered by Waline v2.6.1