服务器环境搭建
以腾讯云为例:
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,本篇文章就到此结束了,非常感谢你能看到这里,所以如果你觉得这篇文章对你有帮助的话,请点一个大大的赞,支持一下博主,若你觉得有什么问题或疑问,欢迎私信博主或在评论区指出~