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