既然我们已经搭建了 Linux 节点,不可能把它当 windows 系统使用吧 😂。
对于自己 Linux 节点,我相信更多的人是用来学习 Linux 命令,或者说是用来本地部署项目的吧,说白了就是玩 😎。
# 一、准备工作
# 1、目录说明
下面的所有命令都是从 /root/code-environment 目录开始的
cd ~
mkdir code-environment
cd ./code-environment
/etc/profile
对所有登录的用户有效,~/.bash_profile
对当前用户有效
/usr/local
一般指软件的安装目录,/opt
一般指服务程序的安装目录。
警告
后面的 mysql、Redis 等能进行远程连接的前提是要 开放对应的端口 (在云服务器厂商那里开放端口)。
# 2、git 工具
在 github 上找到源码编译安装:git 的 Linux 版本 (opens new window)
- 下载
# 安装git包
wget https://github.com/git/git/archive/refs/tags/v2.38.1.tar.gz
tar -zxvf git-2.38.1.tar.gz
# 安装依赖(注意:这里的依赖💖后面可能也会使用;)
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker
yum remove git
- 编译安装(/usr/local)
cd git-2.38.1/
make configure # 配置
./configure --prefix=/usr/local/git
make profix=/usr/local/git all # 编译
make install # 安装
- 环境变量(/etc/profile)
vim /etc/profile
# 内容
# git
export GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin
- 检查
source /etc/profile
git --version
# 3、端口汇总
基础环境 | 端口 | 项目数据 | 端口 | |
---|---|---|---|---|
JDK | MySQL | 3306 | ||
Tomcat | 8080 | Redis | 6379 | |
Maven | MongoDB | 27017 | ||
RabbitMQ | 15672 | |||
Nginx | 80 | |||
Node |
# 二、基本环境
# 1、JDK 安装
在 oracle 官网下载 jdk1.8 (opens new window)
- 卸载 OpenJDK
# 查看原jdk
java -version
rpm -aq | grep java
# 卸载(只删除以java开头的即可)
yum -y remove [文件名]
java -version
- 解压安装(/usr/local)
cd /usr/local/
mkdir java
cd java
tar -zxvf /root/code-environment/jdk-8u351-linux-x64.tar.gz -C ./
- 环境变量(/etc/profile)
vim /etc/profile
# 内容
# java
JAVA_HOME=/usr/local/java/jdk1.8.0_351
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
source /etc/profile # 使配置生效
- 检查
java -version
javac
# 2、Tomcat 安装
在 Apache 官网下载 Tomcat 8 (opens new window)
- 解压安装(/usr/local)
cd /usr/local/
mkdir tomcat
cd tomcat
tar -zxvf /root/code-environment/apache-tomcat-8.5.83.tar.gz -C ./
- 启动脚本
cd ./apache-tomcat-8.5.83/bin/
./startup.sh
# 访问:
# 浏览器访问 服务器ip地址:8080 即可
- 快捷操作、开机启动
# 1、配置一
cd /etc/rc.d/init.d/
# 赋予权限
touch tomcat
chmod +x tomcat
vim tomcat
# 内容
#!/bin/bash
#chkconfig:- 20 90
#description:tomcat
#processname:tomcat
TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.83
case $1 in
start) su root $TOMCAT_HOME/bin/startup.sh;;
stop) su root $TOMCAT_HOME/bin/shutdown.sh;;
*) echo "require start|stop" ;;
esac
# 2、配置二
cd /usr/local/tomcat/apache-tomcat-8.5.83/bin
vim setclasspath.sh
# 内容
export JAVA_HOME=/usr/local/java/jdk1.8.0_351
export JRE_HOME=/usr/local/java/jdk1.8.0_351/jre
# 经过上面的配置,对Tomcat的启用就变得简洁得多了
service tomcat start # 开启
service tomcat stop # 关闭
# 开机启动配置
chkconfig --add tomcat
chkconfig tomcat on
- 其他
cd /usr/local/tomcat/apache-tomcat-8.5.83/
# 1、war包
cd webapps/
cp /root/workspace/ruoyi/ruoyi-admin.war ./ # 启动Tomcat后将自动对war包解压
# 2、配置
cd conf/
vim server.xml
# 内容(在<Host appBase="webapps" ……></Host>标签内进行配置)
<Context path="/" docBase="/usr/local/tomcat/apache-tomcat-8.5.83/webapps/ruoyi-admin" reloadable="flase"></Context>
# 3、Maven 安装 ✨
在 Apache 官网下载 maven3.6 (opens new window)
- 解压安装(/opt)
cd /opt
mkdir maven
cd maven
tar -zxvf /root/code-environment/apache-maven-3.8.6-bin.tar.gz -C ./
- 阿里镜像加速
进入官网就会发现,其网站在国内的加载速度并不理想
vim /opt/maven/apache-maven-3.8.6/conf/settings.xml
# 内容(在<mirrors></mirrors>标签内容加入)
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- 环境变量(/etc/profile)
vim /etc/profile
# 内容
# maven
export MAVEN_HOME=/opt/maven/apache-maven-3.8.6
export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile # 使配置生效
- 检查
mvn -v
# 4、Nginx 安装
在 Nginx 官网下载 Nginx (opens new window)
- 解压安装(/usr/local)
cd /usr/local/
mkdir nginx
cd nginx
tar zxvf /root/code-environment/nginx-1.17.10.tar.gz -C ./
# 安装
# 1、依赖
yum -y install pcre-devel
yum -y install openssl openssl-devel
# 2、编译安装
cd nginx-1.17.10
./configure
make && make install
- 启动 Nginx
/usr/local/nginx/sbin/nginx
# 停止Nginx服务
/usr/local/nginx/sbin/nginx -s stop
# 重启Nginx服务
/usr/local/nginx/sbin/nginx -s reload
- 启动脚本(开机自启动)
# 和前面的mysql、tomcat类似
# https://developer.aliyun.com/article/608485
# 是否配置,看看你是否有这个需求
- systemctl 管理 nginx 服务
redis 好像安装完成时,systemctl 就可以管理 redis 服务了
vim /usr/lib/systemd/system/nginx.service
# 内容
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
# 更新配置文件
systemctl daemon-reload
# 初次使用
ps -ef|grep nginx
kill [nginx进程号]
systemctl start nginx.service
systemctl status nginx.service # 查看nginx服务
# 开机自启
systemctl enable nginx.service
systemctl disable nginx.service
# 开启
systemctl start nginx.service
# 关闭
systemctl stop nginx.service
# 重启
systemctl restart nginx.service
- 使用示例
# 配置文件位置🚩
vim /usr/local/nginx/conf/nginx.conf # 可配置端口、ip等
# 内容
user root;
http{
server {
listen 8089 # 项目的端口(默认80)
server_name 192.168.6.66 # 项目的ip(默认服务器地址localhost)
# 1、前端dist文件地址
location / {
root /www/wwwroot/ruoyi-ui; # dist文件路径
index index.html index.htm;
}
# 2、后端接口地址
location /prod-api/ { # (注意尾部加 / 😭)
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_pass http://110.110.110.110:8080/; # springboot项目默认端口(注意尾部加 / 😭)
}
}
}
# 让nginx.conf配置生效
/usr/local/nginx/sbin/nginx -s reload
- 检查
ps -aux | grep nginx # 查看进程
lsof -i:80 # 谁占用了
netstat -anp | grep :80 # 那个程序🍗在运行
# 访问:
# 浏览器访问服务器ip地址即可
- 重启服务器报错问题
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 5、Node 安装 ✨
在 node 官网上找到Linux Binaries (x64) (opens new window)并下载
- 解压安装(/usr/local)
cd /usr/local/
mkdir node
cd node
tar -Jxvf /root/code-environment/node-v16.18.0-linux-x64.tar.xz -C ./
- 环境变量(~/.bash_profile)
cd ~
vim .bash_profile
# 内容
# Nodejs
export PATH=/usr/local/node/node-v16.18.0-linux-x64/bin:$PATH
source ~/.bash_profile # 使配置生效
- 检查
node -v
npm version
npx -v
# 三、项目数据
# 1、Mysql 安装
在 oracle 官网下载 mysql5.7 (opens new window)
- 卸载 Mariadb
# 查看
rpm -qa | grep mariadb
# 卸载(只删除以java开头的即可)
yum -y remove [文件名]
警告
由于 mysql 的目录会在多个地方进行配置,为了方便,直接将内容解压到/mysql
中,而不是/mysql/mysql-5.7.40
中。
- 解压(/usr/local)
tar -zxvf /root/code-environment/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# 重命名
cd /usr/local/
mv mysql-5.7.40-linux-glibc2.12-x86_64 mysql
- 归属用户
# 添加用户组
groupadd mysql
# 添加用户组(useradd -g [用户组] [用户名] )
useradd -g mysql mysql
# 修改文件归属(chown -R [所有者]:[用户组] 文件)
cd mysql
chown -R mysql:mysql ./
- 配置文件(/etc/my.cnf)
cd /usr/local/mysql/
mkdir data # 备用
# 新建my.cnf
cd /etc
touch my.cnf
vim ./my.cnf
# 内容
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
# 设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装⽬录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放⽬录
datadir=/usr/local/mysql/data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql # 修改权限为-可读可写可执行
- 安装(/usr/local)
cd /usr/local/mysql
# 正式安装
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 【注意:这里会得到一个临时mysql的root🚩登录密码(最后面)】
- 启动脚本(mysqld 服务随系统启动⽽⾃动启动)
cp ./support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
# 内容(大概在45行左右👀)
# 将
basedir=
datadir=
# 改为
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
# 添加mysqlId服务
chmod +x /etc/init.d/mysqld # 设置权限
chkconfig --add mysqld # 加入系统服务
# 检查服务是否生效
chkconfig --list mysqld # 2、3、4、5开
# 启动mysqld
service mysqld start
- 环境变量(~/.bash_profile)
将 MYSQL 的 BIN ⽬录加⼊ PATH 环境变量
cd ~
vim .bash_profile
# 内容
# mysql
export PATH=$PATH:/usr/local/mysql/bin
source ~/.bash_profile # 使配置生效
- 首次登录
注意:① 记得加上 sql 语句末加上
;
② 出现 OK,才表示成功
# 登录后
mysql -u root -p
# 1、修改root密码
> alter user user() identified by "密码";
> flush privileges;
# 2、远程主机登录设置
> use mysql;
> update user set user.Host='%' where user.User='root';
> flush privileges;
> quit
- 检查
# 使用Navicat等工具进行连接测试即可
# 2、Redis 安装
在 Redis 官网下载 稳定版 Redis (opens new window)
进入 listing of all previous Redis releases (opens new window)即可按需下载
- 解压安装(/usr/local)
cd /usr/local/
mkdir redis
cd redis
tar zxvf /root/code-environment/redis-5.0.8.tar.gz -C ./
# 编译安装
cd redis-5.0.8/
make && make install
- REDIS 安装为系统服务并后台启动
cd ./utils/
./install_server.sh # 其中的配置全选默认即可
# 查看redis状态
systemctl status redis_6379.service
# 或者:
ps -ef | grep redis # 查看进程
- Redis 启用
# 1、启动本地Redis客户端
redis-cli
> set name lencamo
> get name
# 2、远程Redis连接配置
vim /etc/redis/6379.conf
# 修改内容
# ① 可远程连接(大概在70行左右👀)
bind 0.0.0.0
# bind 127.0.0.1
# ② 设置访问密码(大概在508行左右👀)
requirepass [密码]
#requirepass foobared
systemctl restart redis_6379.service # 重启服务
- 检查
# 1、本地连接
redis-cli
> get name
> auth [密码]
> get name
# 2、远程连接
# RDM可视化工具
- Redis 可视化工具
下载 github 上某大神的可视化工具:RDM (opens new window),但遗憾的是要获取实时的安装包要付费 (opens new window)
所以又有大佬实时的帮我们打包,并将其发布到了 github 上:qishibo (opens new window)、lework (opens new window)
# 3、MongoDb 安装
在 node 官网上选择CentOS 7.0 / tgz (opens new window)并下载
安装过程和 node 相似
- 解压安装(/usr/local)
tar -zxvf /root/code-environment/mongodb-linux-x86_64-rhel70-4.2.23.tgz -C /usr/local/
# 重命名
cd /usr/local/
mv mongodb-linux-x86_64-rhel70-4.2.23 mongodb
- 环境变量(~/.bash_profile)
vim /etc/profile
# 内容
# mongodb
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
source /etc/profile # 使配置生效
- 配置文件
cd /usr/local/mongodb
touch mongodb.conf
mkdir data
mkdir logs
cd data
mkdir db
cd logs
touch mongodb.log
# 配置
vim mongodb.conf
# 内容
dbpath=/usr/local/mongodb/data/db # 数据库数据存放目录
logpath=/usr/local/mongodb/logs/mongodb.log # 日志文件存放目录
logappend=true # 日志追加方式
port=27017 # 端口
noauth = true # 不启用验证
maxConns = 100 # 最大同时连接数
fork=true # 以守护进程方式在后台运行
bind_ip=0.0.0.0 # 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
- 启动
# 当然--config可以简写为 -f
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
# 连接MongoDB数据库
cd /usr/local/mongodb/bin/
mongo
> db
浏览器查看
http://服务器ip:27017/
- systemctl 管理 mongodb 服务
vim /lib/systemd/system/mongodb.service
# 内容
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 更新配置文件
systemctl daemon-reload
# 初次使用
ps -ef|grep mongodb
kill [nginx进程号]
systemctl start mongodb.service
systemctl status mongodb.service # 查看nginx服务
# 开机自启
systemctl enable mongodb.service
systemctl disable mongodb.service
# 开启
systemctl start mongodb.service
# 关闭
systemctl stop mongodb.service
# 重启
systemctl restart mongodb.service
- 检查
mongo -version
netstat -lanp | grep "27017"
# 4、RabbitMQ 安装
RabbitMQ 消息队列的使用需要 erlang 环境的支持,所以必须安装 erlang
- 安装 erlang
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm .sh | sudo bash
yum install erlang-22.3.3-1.el7.x86_64
yum load-transaction /tmp/yum_save_tx.2020-05-14.22-21.n0cwzm.yumtx
# 检查
erl
- 安装 RabbitMQ
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
yum install rabbitmq-server-3.8.3-1.el7.noarch
- 其他
# 开机启动
chkconfig rabbitmq-server on
# 启动服务
systemctl start rabbitmq-server.service
# 开启web可视化管理插件
rabbitmq-plugins enable rabbitmq_management
# 访问
服务器ip:15672