项目部署--最原始的方法

avatar
作者
猴君
阅读量:0

服务器环境搭建

        以腾讯云为例:

1.可以先用这个使用一个月的

2.访问服务器官网:腾讯云官网,进去先登录,再点击 控制台,找到 轻量应用服务器,进去之后会看见使用的服务器,有一个 公网IP(如下图),很重要,不要告诉别人。

3.点击重置密码(如下图),重置密码会强制关机,等一会儿就重启成功了。这里可以使用putty、Xshell、MobaXterm等等远程软件进行连接,我这里使用 Xshell(这些都可以去官网下载,免费、安装方便、不用配置环境、可以立即使用)

4.创建快照,方便后续点错或者其他原因回滚练习,名字可以随意取

5.远程工具连接服务器,成功连接后开始安装数据库。

6.安装 mysql 数据库,

yum install mysql yum install mysql-server yum install mysql-devel

安装mysql和mysql-devel都成功,但是安装mysql-server失败,解决方法:官网下载安装mysql-server

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql-community-server

(1)安装成功后启动mysql服务

systemctl start mysqld

(2)设置mysql服务开机自启动

systemctl enable mysqld

(3)数据库的相关命令

systemctl disable mysqld      //停止mysql服务开机自启动 systemctl status mysqld     //查看mysql服务当前状态 systemctl restart mysqld     //重启mysql服务 systemctl stop mysqld     //停止mysql服务

(4)初次安装mysql,root账户没有密码,让输入密码的时候直接回车就行

mysql -u root

(5)设置密码(这里密码随意,不要中文)

set password for 'root'@'localhost' =password('root用户密码');

7.防火墙开放 3306 端口,

firewall-cmd --zone=public --add-port=3306/tcp --permanent  //如果显示 not running 表示已经关闭防火墙,开启就可以了 systemctl start firewalld.service //开启防火墙 继续执行开放3306端口的命令   //开放3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent #success  //防火墙重新加载配置 firewall-cmd --reload #success  //查看开放的端口 firewall-cmd --list-ports # 3306/tcp

防火墙相关命令

//查看防火墙状态 firewall-cmd --state 或者 systemctl status firewalld //如果显示 not running 表示已经关闭防火墙。  systemctl start firewalld.service //开启防火墙 systemctl stop firewalld //关闭防火墙  //重启防火墙 firewall-cmd --relaod 或者 systemctl reload firewalld  systemctl enable firewalld //开机自启动防火墙 systemctl disable firewalld //禁止开机启动防火墙 firewall-cmd --permanent --zone=public --remove-port=8080/tcp #关闭8080端口  //打开端口后查看 firewall-cmd --zone=public --list-ports  //查看所有打开的端口  //显示端口已打开: #8848/tcp 5000/tcp   //查看已开启的端口信息 netstat -tulnp | grep :5000  //查看5000端口信息(指定) netstat -ntlp //查看全部端口信息

8.配置 mysql 默认编码为 UTF-8 ,修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置:

vim /etc/my.cnf [mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'

输入 vim /etc/my.cnf 进入到这里,按 a 进入编辑模式,把编码配置粘贴到[mysqld]的下面,光标放到[mysqld]下面,鼠标右键点击一下粘贴,会弹出粘贴预览,粘贴后也要检查有没有少字母或者多空格,添加完编码配置,然后按ESC键退出编辑模式,按键盘的shift键+:键,输入字母wq(一定要小写),保存退出(一定要在英文状态下),回车,回到了命令行界面

9.重启 mysql 

systemctl restart mysqld

10.云服务器放行 3306 端口,点击 防火墙-> 添加规则 ->输入3306->点击确定

11.idea 连接数据库

部署前端

进入 nginx 官网 ,点击 download ,下载稳定版,选择中间的,鼠标右键复制链接地址

做点准备工作

//查看当前所在目录 pwd #/root  // 创建services目录,用来存放所有项目的依赖和安装包 mkdir services  //列出目前工作目录所含之文件及子目录 ls #mysql-community-release-el7-5.noarch.rpm  services  //把之前的mysql的安装包移动到services目录中 mv mysql-community-release-el7-5.noarch.rpm /root/services  // 进入到services目录中 cd services ls #mysql-community-release-el7-5.noarch.rpm

把nginx安装包下载下来,并改名为nginx-1.20.2.tar.gz

curl -o nginx-1.20.2.tar.gz http://nginx.org/download/nginx-1.20.2.tar.gz #  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current #                                 Dload  Upload   Total   Spent    Left  Speed #100 1037k  100 1037k    0     0  48743      0  0:00:21  0:00:21 --:--:-- 46562 ls # mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2.tar.gz

解压nginx

tar -zxvf nginx-1.20.2.tar.gz ls # mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2  nginx-1.20.2.tar.gz

进入到nginx目录中

nginx-1.20.2>> cd nginx-1.20.2 nginx-1.20.2>> ls #auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

安装相关依赖

nginx-1.20.2>> yum install pcre pcre-devel -y nginx-1.20.2>> yum install openssl openssl-devel -y

设置系统配置参数

nginx-1.20.2>> ./configure --with-http_ssl_module --with-http_v2_module --with-stream

开始编译

nginx-1.20.2>> make

make报错
make: *** No rule to make target `build', needed by `default'.  Stop.

解决方案:

//安装下面配置 yum -y install make zlib-devel gcc-c++ libtool openssl openssl-devel //重新configure ./configure  //编译 make

安装

nginx-1.20.2>> make install

现在命令行输入 nginx 会报错,说找不到命令,需要配置环境变量

nginx-1.20.2>> vim /etc/profile  // 按下shift+g将光标定位到最后一行,新增以下内容: export PATH=$PATH:/usr/local/nginx/sbin	  //使文件生效 nginx-1.20.2>> source /etc/profile nginx-1.20.2>> nginx //没有报错,环境变量配置完毕 nginx-1.20.2>>

查看当前所有tcp端口/查看启动情况

nginx-1.20.2>> netstat -ntlp Active Internet connections (only servers) #Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name #tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8210/nginx: master #tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1648/sshd       #tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1120/master     #tcp6       0      0 :::22                   :::*                    LISTEN      1648/sshd       #tcp6       0      0 ::1:25                  :::*                    LISTEN      1120/master     #tcp6       0      0 :::3306                 :::*                    LISTEN      10626/mysqld

复制nginx.conf配置文件.,并重命名为nginx.default.conf

nginx-1.20.2>> ls #auto     CHANGES.ru  configure  html     Makefile  objs    src     #CHANGES  conf        contrib    LICENSE  man       README nginx-1.20.2>> cd /usr/local/nginx/conf conf>> ls #fastcgi.conf            koi-utf             nginx.conf           uwsgi_params #fastcgi.conf.default    koi-win             nginx.conf.default   uwsgi_params.default #fastcgi_params          mime.types          scgi_params          win-utf #fastcgi_params.default  mime.types.default  scgi_params.default conf>> cp nginx.conf nginx.default.conf conf>> ls #fastcgi.conf            koi-utf             nginx.conf          scgi_params.default #fastcgi.conf.default    koi-win             nginx.conf.default  uwsgi_params #fastcgi_params          mime.types          nginx.default.conf  uwsgi_params.default #fastcgi_params.default  mime.types.default  scgi_params         win-utf //查看nginx.conf整个文件内容 conf>> cat nginx.conf //以下是nginx.conf文件的内容: #user  nobody; worker_processes  1;  #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info;  #pid        logs/nginx.pid;   events {     worker_connections  1024; }   http {     include       mime.types;     default_type  application/octet-stream;      #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '     #                  '$status $body_bytes_sent "$http_referer" '     #                  '"$http_user_agent" "$http_x_forwarded_for"';      #access_log  logs/access.log  main;      sendfile        on;     #tcp_nopush     on;

回到services目录中

conf>> cd /root/services services>>

前端build一下,打包,上传(xftp)完毕之后,会在可视化目录显示,我们用命令查看也有

把dist改名为user-center-front,现在咱们所有的前端项目的代码已经上传到服务器上了

services>> mv dist user-center-front services>> ls #mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2  nginx-1.20.2.tar.gz  user-center-front services>> cd user-center-front user-center-front>> ls #165.1e462d15.chunk.css  p__404.515fbfb7.async.js #165.e3d26100.async.js   p__404.572eeed8.chunk.css #272.27714ff6.chunk.css  p__Admin.d79862a3.async.js #272.be6c6be9.async.js   p__Admin.db241442.chunk.css #326.873a9cc6.async.js   p__Admin__UserManage.615c6438.async.js #719.2a859cd0.async.js   p__Admin__UserManage.f59630d6.chunk.css #799.f321cbac.async.js   pro_icon.svg #820.0a787cb0.chunk.css  p__TableList.7a82e2b4.async.js #820.0de8dda5.async.js   p__TableList.e56ebd76.chunk.css #835.da495036.async.js   p__user__Login.d468acb1.async.js #868.2cfcdc0e.chunk.css  p__user__Login.e7c9dfd1.chunk.css #868.a3575653.async.js   p__user__Register.219ee459.async.js #907.e30beeda.async.js   p__user__Register.c91a7b9e.chunk.css #918.cadf4497.async.js   p__Welcome.517e0d2d.chunk.css #admin                   p__Welcome.d1cc9b1f.async.js #asset-manifest.json     t__plugin-layout__Layout.7abfec92.async.js #CNAME                   t__plugin-layout__Layout.e2d8f4b7.chunk.css #favicon.ico             umi.aeb188ce.js #icons                   umi.cd341d5b.css #index.html              user #list                    welcome #logo.svg

修改配置文件,设置启动用户和前端项目所在路径

user-center-front>> cd /usr/local/nginx/conf conf>> vim nginx.conf 修改文件内容为: user  root;(修改的地方) worker_processes  1; ....(省略).... location / {   root   /root/services/user-center-front;(修改的地方)   index  index.html index.htm; } ....(省略).... 然后按ESC键退出编辑模式,按 :wq  保存退出

更新配置

conf>> nginx -s reload

可以访问公网ip地址了,会出现nginx页面(访问前要在云服务器网站开放80端口,还要在防火墙
手动增加80端口)

conf>> firewall-cmd --zone=public --add-port=80/tcp --permanent #success //防火墙重新加载配置 conf>> firewall-cmd --reload #success //查看开放的端口 conf>> firewall-cmd --list-ports #3306/tcp 80/tcp

然后用服务器的公网IP地址去网页地址栏访问一下,出现了登录页面。

后端部署

java 安装,创建 jdk 目录

mkdir /home/jdk17

下载jdk17并将其放到我们所建立的目录中

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz -P /home/jdk17/

解压文件

tar xf /home/jdk17/jdk-17_linux-x64_bin.tar.gz -C /home/jdk17/

查看安装的jdk具体的版本是什么

cd /home/jdk17/;ls

比如我的是jdk-17.0.7一定要记清楚这个版本号哦,下面修改环境变量的时候要使用的

修改环境变量

vim /etc/profile

注意javahome的路径是我们刚刚设置的那个文件夹

export JAVA_HOME=/home/jdk17/jdk-17.0.7 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH

刷新环境变量

source /etc/profile

测试是否安装成功

java -version

安装maven

conf>> cd /root/services/ services>> curl -o apache-maven-3.8.5-bin.tar.gz https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz services>> ls #apache-maven-3.8.5-bin.tar.gz             nginx-1.20.2         user-center-front #mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2.tar.gz //解压 services>> tar -zxvf apache-maven-3.8.5-bin.tar.gz services>> ls #apache-maven-3.8.5             mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2.tar.gz #apache-maven-3.8.5-bin.tar.gz  nginx-1.20.2                              user-center-front

进入 maven

services>> cd apache-maven-3.8.5 apache-maven-3.8.5>> cd bin bin>> ls #m2.conf  mvn  mvn.cmd  mvnDebug  mvnDebug.cmd  mvnyjp //这里的mvn是maven的可执行文件,咱们就是用这个文件去构建项目  //复制当前所在的目录路径 bin>> pwd #/root/services/apache-maven-3.8.5/bin

添加环境变量

bin>> vim /etc/profile // 按下shift+g将光标定位到最后一行,把刚刚复制的路径粘贴到nginx环境变量后面: .....nginx/sbin:/root/services/apache-maven-3.8.5/bin 然后按ESC键退出编辑模式,按 :wq 保存退出  //使文件生效 bin>> source /etc/profile

看看环境变量是否配置成功

bin>> cd /root/services/ services>> mvn -v #Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0) #Maven home: /root/services/apache-maven-3.8.5 #Java version: 1.8.0_322, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre #Default locale: en_US, platform encoding: UTF-8 #OS name: "linux", version: "3.10.0-1160.45.1.el7.x86_64", arch: "amd64", family: "unix" //可以查看maven命令的帮助 services>> mvn --help

          

现在要把后端项目也放上去,用git拉去或直接把项目拖到services目录中    idea 使用 git
服务器下载git,就可以用git拉取了

services>> yum install -y git

进入到后端项目中

services>> cd user-center-backend user-center-backend>> ls #mvnw  mvnw.cmd  pom.xml  README.md  sql  src

用 mvn 编译一下

//打包构建,跳过测试 user-center-backend>> mvn package -DskipTests //这个构建完之后就是之前后端打包的jar,可以直接用之前的jar //拖到user-center-backend目录中去执行,因为maven默认会去国外下载依赖,很慢 //直接用我们之前打包好的也行 user-center-backend>> ls #mvnw  mvnw.cmd  pom.xml  README.md  sql  src  user-center-backend-0.0.1-SNAPSHOT.jar

执行

user-center-backend>> java -jar ./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod  //执行后如果显示没有权限;给这个文件添加可执行权限 user-center-backend>> chmod a+x user-center-backend-0.0.1-SNAPSHOT.jar //再ls就会发现user-center-backend-0.0.1-SNAPSHOT.jar变成绿色了 user-center-backend>> ls //再次执行 user-center-backend>> java -jar ./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod  //当然这么用的话,这个窗口就不能做任何事了,被这个命令占满了,按ctrl+c中断它 //让它在后台运行 user-center-backend>> nohup java -jar ./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod & //可以看见它正在运行 user-center-backend>> jobs #[1]+  Running                 nohup java -jar ./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod & //这里可以看到java在8080端口启动了 user-center-backend>> netstat -ntlp #Active Internet connections (only servers) #Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name #tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1393/sshd       #tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1396/master     #tcp6       0      0 :::3306                 :::*                    LISTEN      1441/mysqld     #tcp6       0      0 :::8080                 :::*                    LISTEN      4367/java       #tcp6       0      0 :::22                   :::*                    LISTEN      1393/sshd       #tcp6       0      0 ::1:25                  :::*                    LISTEN      1396/master  //用jps也可以看到运行的java程序 user-center-backend>> jps #7298 Jps #4367 user-center-backend-0.0.1-SNAPSHOT.jar

Ending: 

        OK,本篇文章就到此结束了,非常感谢你能看到这里,所以如果你觉得这篇文章对你有帮助的话,请点一个大大的赞,支持一下博主,若你觉得有什么问题或疑问,欢迎私信博主或在评论区指出~

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!