服務(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ù)庫密碼 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ù)庫默認(rèn)密碼:"$localPWD export MYSQL_PWD=$localPWD echo "重置數(shù)據(jù)庫密碼為:"$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ù)庫編碼" 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)限來創(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)目直接通過 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)行訪問,可以一些返回的結(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ì)顯示前端的主頁內(nèi)容
注意
如果運(yùn)行之后顯示錯(cuò)誤,返回錯(cuò)誤頁面,403 或者 404 可以去/var/log/nginx 中查看錯(cuò)誤文件,是由于什么運(yùn)行不能運(yùn)行。
如果你在CentOS操作系統(tǒng)下面運(yùn)行Nginx服務(wù)出現(xiàn)權(quán)限方面的問題,有可能是SELinux(Security Enhanced Linux)在起作用。SELinux提供了一種機(jī)制來限制進(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)文章
網(wǎng)絡(luò)線路科普之CN2,GIA,CIA,BGP以及IPLC都是什么意思
購買海外vps或者物理服務(wù)器或者海外實(shí)體服務(wù)器托管的時(shí)候,在中國IDC服務(wù)器商中的有關(guān)網(wǎng)絡(luò)線路帶寬的術(shù)語有很多,今天專門做了一個(gè)專題,有關(guān)IPLC專線、CN2、BGP、CIA和普通線路知識(shí)普及2021-06-06如何通過Apache Bench實(shí)現(xiàn)web壓力測(cè)試
這篇文章主要介紹了如何通過Apache Bench實(shí)現(xiàn)web壓力測(cè)試,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Kubernetes特別屬性的標(biāo)簽Label的強(qiáng)大作用
這篇文章主要為大家介紹了Kubernetes特別屬性的標(biāo)簽Label的強(qiáng)大作用介紹,希望可以對(duì)大家有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03用兩塊硬盤組建RAID0磁盤陣列簡(jiǎn)單教程(圖文詳解)
最近為了考慮數(shù)據(jù)安全特做了raid陣列,采用兩塊或多塊硬盤組建RAID磁盤陣列也成為了目前比較有性價(jià)比的硬盤性能提升解決方案2014-05-05CentOS 6.3 Rsync客戶端與Win2003 cwRsyncServer服務(wù)端實(shí)現(xiàn)數(shù)據(jù)同步
這篇文章主要介紹了CentOS 6.3 Rsync客戶端與Win2003 cwRsyncServer服務(wù)端實(shí)現(xiàn)數(shù)據(jù)同步,需要的朋友可以參考下2015-07-07vscode內(nèi)網(wǎng)訪問服務(wù)器的方法
這篇文章主要介紹了vscode內(nèi)網(wǎng)訪問服務(wù)器的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06git沖突解決_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了git沖突解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08linux和windows互傳文件的實(shí)現(xiàn)方案
Windows和Linux上的文件互傳(互相拷貝)一般常見的主要分為三種:1.基于FTP的方式 2.基于HTTP的方式 3.基于SSH協(xié)議的方式.今天我們來探討的是ssh協(xié)議的方式2018-04-04解讀hadoop啟動(dòng)集群之后沒有namenode的一種情況
在配置Hadoop集群時(shí),IP地址錯(cuò)誤可能導(dǎo)致Namenode無法啟動(dòng),解決方法包括檢查并修改配置文件中的IP地址,確保虛擬機(jī)間通信無障礙,并適當(dāng)格式化Namenode和DataNode,詳細(xì)步驟包括修改hosts文件、配置ssh免密碼登錄、調(diào)整zookeeper配置2024-10-10