查看nginx 进程命令
ps aux | grep server_name
1. 安装MySQL
1.1 下载压缩包
1.2 解压
上传并解压好放在指定位置
创建soft文件夹
mkdir /soft
上传文件,在该目录下再创建一个mysql文件夹,将安装包解压到新文件夹中
mkdir /soft/mysql-8.3.0
tar -xvf mysql-8.3.0-1.el9.x86_64.rpm-bundle.tar -C mysql-8.3.0
1.3 安装
解压完成后,进入mysql-8.3.0文件夹
cd /soft/mysql-8.3.0
安装 rpm 包之前需要下载插件,mysql 里面 rpm 的安装依赖于该插件。
yum install openssl-devel # 阿里云不能升级,会出现无法远程登录
yum -y install libaio perl net-tools
安装完插件后,依次执行命令安装 rpm 包
rpm -ivh ****.rpm //每个都要执行,个别报错先无视
- 启动 MySQL 服务:systemctl start mysqld
- 重启 MySQL 服务:systemctl restart mysqld
- 关闭 MySQL 服务:systemctl stop mysqld
安装 MySQL 会自动生成一个随机密码,可在 /var/log/mysqld.log 这个文件中查找该密码
cat /var/log/mysqld.log
1.4 连接 MySQL
mysql -u root -p
输入密码后修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '@********';
1.5 设置可远程连接
修改root或者要可以远程连接的账号权限
use mysql
update user set host = '%' where user = 'root';
刷新权限
flush privileges;
查询确认权限
select host,user from user;
完成退出sql
exit
2. 安装Nginx
2.1 安装必须的插件,之前安装过可跳过或者更新
一次性安装
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
分次安装
#gcc 可以编译 C,C++,Ada,Object C和Java等语言,编译依赖 gcc 环境
yum install gcc-c++
#pcre pcre-devel pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式
yum install -y pcre pcre-devel
#zlib zlib-devel zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip
yum install -y zlib zlib-devel
#ssl支持
yum install -y openssl
#openssl openssl-devel OpenSSL 是一个强大的安全套接字层密码库,密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用
yum install -y openssl-devel
2.2 推荐直接安装,不通过安装包,有特殊需求可以用.tar.gz安装包
确保系统已经安装了wget,如果没有安装:
yum install wget
下载nginx安装包,可以进官网选择不同的版本官网下载
wgte https://nginx.org/download/nginx-1.27.0.tar.gz
解压
tar xvf nginx-1.27.0.tar.gz
cd nginx-1.27.0
配置(需要https模块再配置,如不需要则跳过)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
不需要https则运行下列代码
./configure
编译和安装
make
make install
查看安装路径
whereis nginx
编辑服务文件
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
说明:
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
加入开机自启动
systemctl enable nginx.service
2.3 Nginx基本操作
#启动服务
systemctl start nginx.service
#停止服务
systemctl stop nginx.service
#重新启动服务
systemctl restart nginx.service
#查看所有已启动的服务
systemctl list-units --type=service
#查看服务当前状态
systemctl status nginx.service
#设置开机自启动
systemctl enable nginx.service
# 停止开机自启动
systemctl disable nginx.service
2.4 nginx.conf https 配置
server {
listen 443 ssl;
server_name localhost;
#根证书地址(默认把证书放在conf目录)
ssl_certificate cert.pem;
#证书秘钥(默认把证书放在conf目录)
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
2.5 将 http 重定向 https
server {
listen 80;
server_name localhost;
#将请求转成https
rewrite ^(.*) https://$server_name$1 permanent;
}
3. 安装nodejs
3.1 下载
第一种为官网下载,官网
第二种为wget下载(本文使用的方法)
创建nodejs文件夹
mkdir /soft/nodejs
下载
wget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.gz
解压
tar zxvf node-v16.18.0-linux-x64.tar.gz
复制到对应文件夹
mv /soft/nodejs/node-v16.18.0-linux-x64/* /soft/nodejs/
3.2 建立软链接
ln -s /soft/nodejs/bin/node /usr/local/bin
ln -s /soft/nodejs/bin/npm /usr/local/bin
3.3 测试
node -v & npm -v
3.4 安装nrm
nrm(npm registry manager) 是 npm 的镜像源管理工具. 有时候国外资源太慢,使用 nrm 可以快速的在 npm 源之间切换。
npm install -g nrm
配置成全局
ln -s /soft/nodejs/bin/nrm /usr/local/bin
查看镜像源
nrm ls
测试镜像速度
nrm test
切换镜像
nrm use taobao
3.4 全局安装webpack/webpack-cli
# 全局安装webpack
npm install -g webpack
# 全局安装webpack-cli
npm install webpack-cli -g
配置成全局
ln -s /soft/nodejs/bin/webpack /usr/local/bin
ln -s /soft/nodejs/bin/webpack-cli /usr/local/bin
两个同时安装,才能检查到安装的版本
webpack -v
3.5 全局安装vue-cli
查看可安装的版本
npm view vue-cli versions –json
当前项目例子用2.6.*版本指定所以选2.6.0,命令如下:
npm install -g vue-cli@2.6.0
安装默认最新版本
npm install -g vue-cli
4. 安装NVM(个别云服务上失败,未找到原因)
一台服务器或者需要再多个nodejs切换时,可以安装nvm进行nodejs版本管理
4.1 上传nvm安装包,这边使用的是0.38.0
4.2 下载
git clone https://github.com/nvm-sh/nvm.git .nvm
4.3 配置环境
打开~/.bashrc
vi ~/.bashrc
在~/.bashrc的末尾,添加如下语句:
export NVM_DIR=" /soft/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# This loads nvm bash_completion
# nodejs下载更换淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
刷新配置
source ~/.bashrc
5. 安装Java
5.1 确认是否安装了Java
rpm -qa | grep java
5.2 上传解压Java
tar -zxvf jdk-8u411-linux-i586.tar.gz
mkdir java
mv /soft/jdk1.8.0_411/ /soft/java/
5.3 配置Java的环境变量
vi /etc/profile
在profile中添加如下配置:
export M2_HOME=/soft/apache-maven-3.9.6
export PATH=${PATH}:$JAVA_HOME/bin:$M2_HOME/bin
刷新权限
source /etc/profile
查看版本
mvn -v
6. 安装maven
6.1 下载
6.2 解压
tar -zxvf apache-maven-3.9.6-bin.tar.gz
6.3 配置maven的环境变量
vi /etc/profile
在profile中添加如下配置:
export M2_HOME=/soft/apache-maven-3.9.6
export PATH=${PATH}:$JAVA_HOME/bin:$M2_HOME/bin
刷新权限
source /etc/profile
查看版本
mvn -v
7. 安装Redis
7.1 下载Redis
7.2 上传及解压缩
tar -zxvf redis-7.2.5.tar.gz
7.3 编译安装
确保已经安装gcc-c++
yum install gcc-c++
进入文件夹编译
/soft/redis-7.2.5
make
make install确认所有都安装完成
make install
7.4 redis配置修改
默认安装路径:/usr/local/bin
进入Redis文件夹,修改redis.conf配置
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123321
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
7.5 启动redis
redis-server /soft/redis-7.2.5/redis.conf
设置开机自启
vi /etc/systemd/system/redis.service
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /soft/redis-7.2.5/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重载系统服务
systemctl daemon-reload
设置开机自启
systemctl enable redis
7.6 redis的基本操作
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
8. 服务启动
8.1 api端
编写脚本
cd /data/workspaces/autodeploy/rouyi/
vi api.sh
#!/bin/bash
export build_folder=/data/workspaces/code/rouyi/databaseSync
export deploy_folder=/data/workspaces/deploy/rouyi
export jar_name=ruoyi-admin.jar
export AppName=ruoyi-admin
export port=18800
export active=druid
export logpath=/data/workspaces/log
export encryptionSwitch=true
export debugParam="-Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=18000"
function stop()
{
echo "停止服务!!!"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
#PID=`ps -ef |grep $AppName|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "停止服务 (pid:$PID) 开始..."
while [ x"$PID" != x"" ]
do
echo "杀死服务$PID"
kill -9 $PID
query
done
echo "服务已停止"
else
echo "$AppName already stopped."
fi
}
function appStatus()
{
echo "检查服务状态!!!"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
#PID=`ps -ef |grep $AppName|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
echo "服务 (pid:$PID) 已启动..."
else
echo "服务启动失败。。。"
fi
}
cd $build_folder
echo '拉取GIT最新代码'
git pull origin master
mvn clean package -f $build_folder
mvn_result=$?
if [[ $mvn_result = '0' ]] ; then
echo '停止服务'
#curl -XPOST http://127.0.0.1:$port/actuator/shutdown
#screen -x -R $screenName -p 0 -X stuff "echo -e \003\n"
stop
#echo '休眠5秒'
#sleep 5s
echo '部署代码'
cp $build_folder/ruoyi-admin/target/$jar_name $deploy_folder/
#echo '后台启动服务'
nohup java -DencryptionSwitch=$encryptionSwitch -Xdebug -jar $deploy_folder/$jar_name --spring.profiles.active=$active --log.path=$logpath --server.port=$port > /data/workspaces/log/log.log 2>&1 &
#nohup java -DencryptionSwitch=$encryptionSwitch $debugParam -jar $deploy_folder/$jar_name --spring.profiles.active=$active --log.path=$logpath --server.port=$port > /data/workspaces/log/log.log 2>&1 &
#nohup java -DencryptionSwitch=$encryptionSwitch $debugParam -jar $deploy_folder/$jar_name --spring.profiles.active=uat --log.path=/data/web/logs --server.port=$port > app.log 2>&1 &
echo "Start $AppName success..."
echo '休眠5秒后检查服务'
sleep 5s
appStatus
#tail -fn 100 /data/web/logs/fms-info.log
#screen -x -R $screenName -p 0 -X stuff "cd $deploy_folder\n"
#screen -x -R $screenName -p 0 -X stuff "java -jar $jar_name --spring.profiles.active=prodhc --server.port=$port\n"
fi
8.2 web端
vi web.sh
在这里插入代码片
8.3 修改Nginx配置(云服务器记得开放对应端口)
cd /soft/nginx-1.27.0/conf/
vi nginx.conf
插入下列语句(api端)
location /admin-api/ {
proxy_pass http://127.0.0.1:18800;
proxy_set_header Host $host;
proxy_set_header Remote_Addr $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
}
插入下列语句(web端)
重启Nginx
systemctl restart nginx.service