Linux下搭环境总结

本文最后更新于:10 个月前

使用的是VMware17虚拟机及centos 7.9版本

VMware中centos7的一些配置

配置静态ip,方便使用mobax,xshell等远程连接
vim /etc/sysconfig/network-scripts/ifcfg-ens33
ip和Gateway仅供参考,设置成电脑虚拟机ip同一网段即可

1
2
3
4
5
BOOTPROTO="static"
IPADDR="192.168.91.128"
NETMASK="255.255.255.0"
GATEWAY="192.168.91.2"
DNS1="8.8.8.8"

设置为命令行界面模式,这样只需要配置最少的内存给虚拟机就可以流畅使用了

1
systemctl set-default multi-user.target

所有软件我都装在/usr/local/opt下

1
2
3
4
5
6
7
8
9
10
11
12
[root@fastdfs opt]# pwd
/usr/local/opt
[root@fastdfs opt]# ll
total 4
drwxr-xr-x. 7 root root 111 Jul 18 23:23 apache-maven-3.9.0
drwxr-xr-x. 6 root root 92 Jul 19 03:24 fastdfs
drwxr-xr-x. 7 root root 245 Jul 18 20:54 jdk
drwxr-xr-x. 10 mysql mysql 141 Jul 18 08:50 mysql
drwxr-xr-x. 7 root root 96 Jul 18 20:57 nacos
drwxr-xr-x. 11 root root 151 Jul 19 03:58 nginx
drwxrwxr-x. 8 root root 4096 Jul 21 02:48 redis
drwxr-xr-x. 8 root root 234 Jul 21 04:49 xxl-job

安装jdk

解压到指定目录

1
tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/opt

设置环境变量

1
2
3
4
5
6
7
8
vim /etc/profile

JAVA_HOME=/usr/local/opt/jdk1.8.0_202
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

生效环境变量

1
source /etc/profile
1
2
ln -s $JAVA_HOME/bin/java /usr/local/bin/java
ln -s $JAVA_HOME/bin/javac /usr/local/bin/javac

安装Mysql

下载

1
wget "https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.3-rc-linux-glibc2.12-x86_64.tar.gz"

解压到指定目录

1
tar -zxvf mysql-8.0.3-rc-linux-glibc2.12-x86_64.tar.gz -C /usr/local/opt

设置环境变量

1
2
3
vim /etc/profile

export PATH=$PATH:/usr/local/opt/mysql/bin

生效环境变量

1
source /etc/profile

创建data文件夹 存储文件

1
mkdir -p /usr/local/opt/mysql/data

创建用户组以及用户和密码

1
2
groupadd mysql
useradd -g mysql mysql

授权用户

1
chown -R mysql.mysql /usr/local/opt/mysql/

初始化基础信息 ,得到临时密码

1
2
3
4
cd bin
./mysqld --user=mysql --basedir=/usr/local/opt/mysql --datadir=/usr/local/opt/mysql/data --initialize

kuDwC<gye2Z0

注释掉mysqld_safe,并且修改信息

1
2
3
4
5
6
vi /etc/my.cnf

basedir=/usr/local/opt/mysql
datadir=/usr/local/opt/mysql/data
socket=/tmp/mysql.sock
character-set-server=UTF8MB4

添加mysqld服务到系统

1
cp -a ./support-files/mysql.server /etc/init.d/mysql

授权以及添加服务

1
2
chmod +x /etc/init.d/mysql
chkconfig --add mysql

启动mysql

1
service mysql start

查看启动状态

1
service mysql status

将mysql命令添加到服务

1
ln -s /usr/local/opt/mysql/bin/mysql /usr/bin

修改root密码

1
2
3
mysql -u root -p
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'a123';
flush privileges;

修改远程连接并生效

1
2
3
use mysql;
update user set host='%' where user='root';
flush privileges;

赋予访问数据的权限

1
grant all privileges on *.* to 'root'@'%' with grant option;

将3306端口加入防火墙

1
2
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

设置开机自启动

1
chkconfig mysql on

安装Nacos

创建nacos_config数据库,并且执行nacos/conf目录下的脚本(/usr/local/opt/nacos/conf/nacos-mysql.sql)

修改配置文件关于数据库的配置

1
2
3
4
5
6
vim application.properties

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=a123

查看防火墙端口是否开放,没开放则开放

1
2
3
4
5
firewall-cmd --query-port=8848/tcp

firewall-cmd --zone=public --add-port=8848/tcp --permanent # 注册端口
firewall-cmd --zone=public --add-port=9848/tcp --permanent # 通讯端口
firewall-cmd --reload

进入bin目录启动nacos

1
sudo sh startup.sh -m standalone

设置nacos开机自启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vim /lib/systemd/system/nacos.service

[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/opt/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/opt/nacos/bin/shutdown.sh
ExecStop=/usr/local/opt/nacos/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
1
systemctl daemon-reload

安装redis

安装依赖

1
yum install -y  g++ gcc-c++ cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make tcl

下载,并编译

1
2
3
4
5
6
7
wget http://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz -C /usr/local/opt/
cd /usr/local/opt/
mv redis-stable redis
cd redis
make
make install #安装可执行程序到/usr/local/bin

修改redis.conf基本配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#默认端口6379
port 6379
#绑定ip,如果是内网可以直接绑定 127.0.0.1, 或者忽略, 0.0.0.0是外网
bind 0.0.0.0 # 不设置这个,无法连接到vmware中的redis
#守护进程启动
daemonize yes
#超时
timeout 300
loglevel notice
#分区
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
#存储文件
dbfilename dump.rdb
#修改密码
requirepass a123

运行

1
2
cd src
./redis-server ../redis.conf

查看防火墙端口是否开放,没开放则开放

1
2
3
4
firewall-cmd --query-port=6379/tcp

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

设置redis开机自启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vim /lib/systemd/system/redis.service

[Unit]
Description = Redis Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/opt/redis/src/redis-server /usr/local/opt/redis/redis.conf
ExecReload=/usr/local/opt/redis/src/redis-cli -p 6379 shutdown
ExecStop=/usr/local/opt/redis/src/redis-cli -p 6379 shutdown
PrivateTmp=true

[Install]
WantedBy=multi-user.target
1
systemctl daemon-reload

安装maven

1
unzip  apache-maven-3.9.0-bin.zip -d /usr/local/opt/

设置本地仓库路径

1
2
3
mkdir -p /usr/local/opt/apache-maven-3.9.0/repo
vim settings.xml
<localRepository>/usr/local/opt/apache-maven-3.9.0/repo</localRepository>

配置环境变量

1
2
3
4
vim /etc/profile
export MAVEN_HOME=/usr/local/opt/apache-maven-3.9.0
export PATH=$JAVA_HOME/bin:$PATH:/usr/local/opt/mysql/bin:$MAVEN_HOME/bin
source /etc/profile

安装xxl-job

执行sql

1
db\tables_xxl_job.sql

修改调度中心配置文件application.properties

1
2
3
4
server.port=8023
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=a123

修改logback.xml

1
<property name="log.path" value="/usr/local/opt/xxl-job/log/xxl-job-admin.log"/>

修改执行器配置文件application.properties

1
2
3
server.port=8024
xxl.job.admin.addresses=http://127.0.0.1:8023/xxl-job-admin
xxl.job.executor.logpath=/usr/local/opt/xxl-job/jobhandler

修改logback.xml

1
<property name="log.path" value="/usr/local/opt/xxl-job/log/xxl-job-executor-sample-springboot.log"/>

打包

1
2
cd /usr/local/opt/xxl-job
mvn package

启动

1
2
3
nohup java -jar /usr/local/opt/xxl-job/xxl-job-admin/target/xxl-job-admin-2.4.1-SNAPSHOT.jar &
#示例执行器:
nohup java -jar /usr/local/opt/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/xxl-job-executor-sample-springboot-2.4.1-SNAPSHOT.jar &

查看守护进程

1
jps -ml | grep xxl-job

开放端口

1
2
firewall-cmd --zone=public --add-port=8023/tcp --permanent
firewall-cmd --reload

访问web

1
http://192.168.91.128:8023/xxl-job-admin/

设置自启动

1
2
3
4
5
6
7
8
9
10
vim shutdown.sh

#!/bin/sh
export app=xxl-job
PROCESS=`ps -ef |grep java |grep -v grep|grep $app|awk '{print $2}'`
for i in $PROCESS
do
echo "Kill the $1 process [ $i ]"
kill -9 $i
done
1
2
3
4
5
vim startup.sh

#!/bin/sh
/usr/local/opt/xxl-job/shutdown.sh
nohup java -jar /usr/local/opt/xxl-job/xxl-job-admin/target/xxl-job-admin-2.4.1-SNAPSHOT.jar >/dev/null 2>&1 &
1
2
3
4
5
6
7
8
9
10
11
12
13
14
vim /lib/systemd/system/xxl-job.service

[Unit]
Description=XXL-JOB service
After=network-online.target

[Service]
Type=forking
ExecStart=/usr/local/opt/xxl-job/startup.sh
ExecStop=/usr/local/opt/xxl-job/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

安装fastDFS

https://github.com/happyfish100/fastdfs/wiki

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 安装依赖
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib
zlib-devel openssl-devel wget vim -y

# libfastcommon模块
git clone https://github.com/happyfish100/libfastcommon.git --depth 1 # 网络问题,我下载不了,直接在github上下载了
./make.sh && ./make.sh install

# 应该先安装ibserverframe模块,不然会报错fatal error: sf/sf_global.h: No such file or directory
git clone https://github.com/happyfish100/libserverframe.git --depth 1
./make.sh
./make.sh install

# fastdfs的安装
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #编译安装

#供nginx访问使用
cp /usr/local/opt/fastdfs/fastdfs/conf/http.conf /etc/fdfs/
cp /usr/local/opt/fastdfs/fastdfs/conf/mime.types /etc/fdfs/

# 下载安装fastdfs-nginx-module
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/opt/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

# 修改/etc/hosts
192.168.91.128 fastdfs.com

# tracker配置
mkdir -p /data/fastdfs
vim /etc/fdfs/tracker.conf
#需要修改的内容如下
port=22122 # tracker服务器端口(默认22122,一般不修改)
base_path=/data/fastdfs # 存储日志和数据的根目录

# storage配置
vim /etc/fdfs/storage.conf
#需要修改的内容如下
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/data/fastdfs # 数据和日志文件存储根目录
store_path0=/data/fastdfs # 第一个存储目录
tracker_server=fastdfs.com:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

# 启动服务
#启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
#启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
# 重启storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

# client测试
vim /etc/fdfs/client.conf
#需要修改的内容如下
base_path=/data/fastdfs
tracker_server=fastdfs.com:22122 #tracker服务器IP和端口
#保存后测试,返回ID表示成功 如:group1/M00/00/00/wKgDDWDtRu6AMPhBARBlpcz7xUs146.jpg
# 上传文件
fdfs_upload_file /etc/fdfs/client.conf /usr/local/soft/fox.jpg
# 删除文件
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgDCmD1LHaADXrMAAW3EDO1WQ106.
jpg

安装Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
./configure --prefix=/usr/local/opt/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_gzip_static_module --add-module=/usr/local/opt/fastdfs/fastdfs-nginx-module/src
make
make install
# 配置nginx访问fastdfs
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=fastdfs.com:22122 #tracker服务器IP和端口
url_have_group_name=true
store_path0=/data/fastdfs

#配置nginx.config
vim /usr/local/opt/nginx/conf/nginx.conf
#添加如下配置
server {
listen 8888; ## 该端口为storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
/usr/local/opt/nginx/sbin/nginx #启动nginx
/usr/local/opt/nginx/sbin/nginx -s reload #重启nginx
/usr/local/opt/nginx/sbin/nginx -s stop #停止nginx

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=8888/tcp --permanent

firewall-cmd --reload

设置nginx开机自启动
vim /lib/systemd/system/nginx.service

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Nginx service
After=network-online.target

[Service]
Type=forking
ExecStart=/usr/local/opt/nginx/sbin/nginx
ExecStop=/usr/local/opt/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Linux下搭环境总结
http://kevinw-m.github.io/2023/07/18/技术博客/linux/Linux下搭环境总结/
作者
Kevin Wu
发布于
2023年7月18日
更新于
2023年10月28日
许可协议