服務(wù)器Centos部署Spring?boot?前后端項(xiàng)目的詳細(xì)步驟
使用centos部署前后端項(xiàng)目,使用的是centos 8,后端用的是Spring,前端用的是Vue,使用下面的步驟進(jìn)行部署:
- 安裝MySQL
這一步有多種方式進(jìn)行安裝,可以使用包管理器,可以使用安裝包解壓縮進(jìn)行安裝,但是最終都需要使用對(duì)配置文件進(jìn)行配置,我建議大家可是嘗試下面的MySQL腳本就行安裝,只需要在里面改動(dòng)值就可以。
vi InstallMySQL.sh- 創(chuàng)建bash文件,填入下面的內(nèi)容
#!/bin/bash
# https://blog.csdn.net/qq_41054313
#數(shù)據(jù)庫(kù)密碼
mysqlPWD="lhDream@123"
echo "--MySQL5.7安裝--"
echo "下載依賴環(huán)境"
yum -y install wget
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
echo "開始安裝"
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
echo "啟動(dòng)MySQL"
systemctl start mysqld.service
systemctl status mysqld.service
a=$(systemctl status mysqld.service | grep "active (running)" | wc -l)
if [ $a -gt 0 ]
then
echo "啟動(dòng)完成,狀態(tài)正常"
#配置MySQL
echo "配置MySQL"
str=$(grep "password is generated for root@localhost:" /var/log/mysqld.log)
localPWD=${str##*"root@localhost: "}
echo "數(shù)據(jù)庫(kù)默認(rèn)密碼:"$localPWD
export MYSQL_PWD=$localPWD
echo "重置數(shù)據(jù)庫(kù)密碼為:"$mysqlPWD
mysql --connect-expired-password -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$mysqlPWD'"
echo "刷新權(quán)限"
export MYSQL_PWD=$mysqlPWD
mysql --connect-expired-password -uroot -e "flush privileges"
echo "配置遠(yuǎn)程登錄"
mysql --connect-expired-password -uroot -e "grant all privileges on *.* to 'root'@'%' identified by '$mysqlPWD' with grant option"
echo "配置數(shù)據(jù)庫(kù)編碼"
echo "[client]" > /etc/my.cnf
echo "default-character-set=utf8" >> /etc/my.cnf
echo "" >> /etc/my.cnf
echo "[mysqld]" >> /etc/my.cnf
echo "datadir=/var/lib/mysql" >> /etc/my.cnf
echo "socket=/var/lib/mysql/mysql.sock" >> /etc/my.cnf
echo "character-set-server=utf8" >> /etc/my.cnf
echo "collation-server=utf8_general_ci" >> /etc/my.cnf
cat /etc/my.cnf
#重啟MySQL查看配置結(jié)果
systemctl restart mysqld
systemctl status mysqld.service
mysql --connect-expired-password -uroot -e "status"
echo "安裝完成"
else
echo "狀態(tài)異常,安裝失敗"
fi
#rm -f mysql57-community-release-el7-10.noarch.rpm
echo "exit"bash InstallMySQL.sh
運(yùn)行腳本,查看安裝進(jìn)度
安裝Redis
vi InstallRedis.sh
#!/bin/bash
# 安裝版本
redis_version="6.2.7"
# 安裝目錄
#redis_installDir="/opt/module/redis"
redis_installDir="/opt/bigdata/redis"
install_redis() {
local version=$1
local installDir=$2
local redisconf_file=$installDir/redis-$version/redis.conf
# 安裝工具包
yum -y install epel-release gcc make tcl
# 下載地址
local downloadUrl="http://download.redis.io/releases/redis-$version.tar.gz"
if [ -z "$(command -v wget)" ]; then
yum -y install wget
if [ $? -eq 0 ]; then
echo "wget安裝完成"
else
echo "wget安裝失敗,請(qǐng)檢查"
exit 1
fi
fi
if [ ! -d "${installDir}" ]; then
mkdir -p "${installDir}"
if [ $? -eq 0 ]; then
echo "安裝目錄${installDir}已創(chuàng)建"
else
echo "請(qǐng)確保您有足夠的權(quán)限來(lái)創(chuàng)建目錄,請(qǐng)?jiān)黾訖?quán)限后再次執(zhí)行"
exit 1
fi
fi
if [ ! -f "/tmp/redis-$version.tar.gz" ] ; then
wget "$downloadUrl" -P /tmp
if [ $? -eq 0 ]; then
echo "redis-$version.tar.gz下載成功"
else
echo "redis-$version.tar.gz下載失敗,請(qǐng)重試或手動(dòng)下載到/tmp目錄下再次執(zhí)行"
echo "下載地址:$downloadUrl"
exit 1
fi
else
echo "/tmp/redis-$version.tar.gz文件已存在"
fi
if [ -d "${installDir}/redis-$version" ]; then
echo "${installDir}/redis-$version 已存在,正在刪除..."
rm -rf "${installDir}/redis-$version"
fi
tar -zxvf "/tmp/redis-$version.tar.gz" -C "${installDir}"
if [ $? -eq 0 ]; then
echo "redis-$version.tar.gz解壓成功"
else
echo "redis-$version.tar.gz解壓失敗,請(qǐng)查看異常信息后重試"
exit 1
fi
# 編譯和安裝
cd ${installDir}/redis-$version
make && make install
sed -i "s|daemonize no|daemonize yes|" "$redisconf_file"
sed -i "s|bind 127.0.0.1 -::1|bind 127.0.0.1 -::1\nbind 0.0.0.0|" "$redisconf_file"
sed -i "s|# requirepass foobared|# requirepass foobared|" "$redisconf_file"
# sed -i "s|port 6379|port 6379|" "$redisconf_file"
# sed -i "s|# cluster-enabled yes|cluster-enabled yes|" "$redisconf_file"
# sed -i "s|# cluster-config-file nodes-6379.conf|cluster-config-file nodes.conf|" "$redisconf_file"
# sed -i "s|# cluster-node-timeout 15000|cluster-node-timeout 5000|" "$redisconf_file"
# sed -i "s|appendonly no|appendonly yes|" "$redisconf_file"
echo "redis 單機(jī)版下載、安裝、配置完成"
echo "redis安裝目錄:${installDir}/redis-$version"
echo "單機(jī)版 進(jìn)入 redis 交互界面命令:redis-cli -h $(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+') -p 6379"
echo "集群版 進(jìn)入 redis 交互界面命令:redis-cli -h $(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+') -c -p 30001"
# mkdir -p "${installDir}/redis-$version/cluster-test"
# for cluster_dir in {7000..7005}
# do
# local create_dir="${installDir}/redis-$version/cluster-test/$cluster_dir"
# mkdir -p "$create_dir"
# cp "$redisconf_file" "$create_dir"
# sed -i "s|port 6379|port $cluster_dir|" "$create_dir/redis.conf"
# redis-server "$create_dir/redis.conf"
# echo "$cluster_dir 端口的redis啟動(dòng)成功"
# done
# local dir=${installDir}/redis-$version/utils/create-cluster
# sed -i "s|CLUSTER_HOST=127.0.0.1|CLUSTER_HOST=192.168.145.105|" "$dir/create-cluster"
# sed -i "s|PROTECTED_MODE=yes|PROTECTED_MODE=no|" "$dir/create-cluster"
# $dir/create-cluster start
# $dir/create-cluster create
}
install_redis "$redis_version" "$redis_installDir"
exit 0增加執(zhí)行權(quán)限
chmod a+x /tmp/install_redis.sh
運(yùn)行當(dāng)前的bash文件
bash InstallRedis.sh
基本上后端需要這些工具
配置后端項(xiàng)目 Maven項(xiàng)目直接通過(guò) clean 和 package 就可以將項(xiàng)目進(jìn)行打包
-

先點(diǎn) clean,之后點(diǎn)package,后端項(xiàng)目就打包完成。之后package完成之后會(huì)生成一個(gè)target文件,target文件內(nèi)估計(jì)生成一個(gè)xxxx.jar文件,這個(gè)jar文件就是打包的文件,如果在ide中沒有看到這個(gè)target文件,可以去項(xiàng)目的本地文件夾中看一下。 將jar文件上傳到服務(wù)器中
這里可以使用任何帶有ftp功能的客戶端進(jìn)行上傳,Winscp,Xftp,Xterminal都可以,建議在上傳之前創(chuàng)建一個(gè)項(xiàng)目文件夾,單獨(dú)存放文件。
上傳之后運(yùn)行jar文件
java -jar xxx.jar -spring.profiles.active=dev
jar后面的內(nèi)容可以刪除,主要是為了換一個(gè)環(huán)境進(jìn)行啟動(dòng)java項(xiàng)目
之后可以輸入服務(wù)器的網(wǎng)址進(jìn)行訪問(wèn),可以一些返回的結(jié)果
spring:
datasource:
driver-class-name: com.cj.mysql.jdbc.Driver
url: jdbc:mysql://192.168.198.149:3306/xxx?useSSL=false
username: root
password: xxxxx
redis:
host: 127.0.0.1
port: 6379
# password: 115474287Zxcczld
server:
port: 8080
servlet:
context-path: /api #設(shè)置路徑前綴與前端一致,默認(rèn)是/
database: 0
lettuce:
pool:
max-active: 10
max-idle: 10
min-idle: 1
time-between-eviction-runs: 10s
前端配置 nginx安裝配置
nginx 配置同樣也比較麻煩,我這邊寫了一個(gè) 一鍵安裝的腳本,可以修改內(nèi)容直接使用
前端項(xiàng)目打包 上傳
我們使用npm工具進(jìn)行打包
npm build
在IDE打包之后會(huì)生成一個(gè)dist文件夾,將這個(gè)文件夾的內(nèi)容和剛剛的方式一樣上傳到服務(wù)器中,可以和后端項(xiàng)目在同一個(gè)父文件夾中
配置 nginx.conf文件
找到nginx.conf文件,進(jìn)行配置,主要需要配置的是server里面的內(nèi)容,location的內(nèi)容,location后面跟的內(nèi)容是當(dāng)前dist文件所在的目錄,比如當(dāng)前dist文件在 www下面,那么內(nèi)容就是 /www/dist
之后重啟nginx服務(wù)
sudo service nginx restart
或者
sudo systemctl restart nginx
之后在瀏覽器中輸入ip地址之后,就會(huì)顯示前端的主頁(yè)內(nèi)容
注意
如果運(yùn)行之后顯示錯(cuò)誤,返回錯(cuò)誤頁(yè)面,403 或者 404 可以去/var/log/nginx 中查看錯(cuò)誤文件,是由于什么運(yùn)行不能運(yùn)行。
如果你在CentOS操作系統(tǒng)下面運(yùn)行Nginx服務(wù)出現(xiàn)權(quán)限方面的問(wèn)題,有可能是SELinux(Security Enhanced Linux)在起作用。SELinux提供了一種機(jī)制來(lái)限制進(jìn)程的權(quán)限,以此增強(qiáng)系統(tǒng)的安全性。
臨時(shí)禁用SElinux
sudo setenforce 0
sudo nano /etc/selinux/config
修改如下內(nèi)容:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted重新運(yùn)行
相信這時(shí)候已經(jīng)OK了!
到此這篇關(guān)于服務(wù)器Centos部署Spring boot 前后端項(xiàng)目的文章就介紹到這了,更多相關(guān)Centos部署Spring boot項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
樹莓派搭建web服務(wù)器的方法實(shí)現(xiàn)(無(wú)需公網(wǎng)IP)
本文主要介紹了樹莓派搭建web服務(wù)器的方法實(shí)現(xiàn)(無(wú)需公網(wǎng)IP),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
web.config(IIS)和.htaccess(Apache)配置
這些是我發(fā)現(xiàn)最有用的片段,/隨時(shí)間推移使用最多的片段。 他們處理諸如從查詢字符串,CORS標(biāo)頭重寫URL以及強(qiáng)制HTTPS重定向之類的事情2019-11-11
服務(wù)器遠(yuǎn)程超出最大連接數(shù)的原因及解決
服務(wù)器遠(yuǎn)程超出最大連接數(shù)的原因是沒有注銷退出有可能導(dǎo)致遠(yuǎn)程連接的進(jìn)程死掉,重啟服務(wù)器即可2014-05-05
Manjaro安裝CUDA實(shí)現(xiàn)教程解析
這篇文章主要介紹了Manjaro安裝CUDA實(shí)現(xiàn)教程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Hadoop中namenode和secondarynamenode工作機(jī)制講解
今天小編就為大家分享一篇關(guān)于Hadoop中namenode和secondarynamenode工作機(jī)制講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
阿里云ECS服務(wù)器輕松搭建ThinkPHP環(huán)境
本文指導(dǎo)在阿里云ECS?CentOS?7.9上部署ThinkPHP框架,涉及安裝PHP、Composer、Apache,配置虛擬主機(jī)解決URL問(wèn)題及目錄權(quán)限設(shè)置,確保項(xiàng)目正常運(yùn)行,感興趣的朋友跟隨小編一起看看吧2025-08-08

