1. 基础环境及网络配置
1.1 无网络
1.11 时区与时间同步
sudo timedatectl set-timezone Asia/Shanghai (设置时区)
sudo systemctl enable --now chronyd (启动时间同步服务)
与运维沟通,确认所需要的端口在服务器管理平台已经放行
注意服务器环境为内网时,生产环境在外网的时候,就需要做映射
如果同时还涉及到域名,则需要让该服务器对应外网与到域名所指向的ip地址一致
1.2 有网络
1.21.系统初始化与安全配置
sudo yum update -y && sudo yum upgrade -y( 更新系统及内核)
sudo yum install -y vim wget curl net-tools lsof htop git unzip chrony(安装常用工具)
1.22****网络配置(防火墙配置Firewalld))
systemctl status firewalld 查看防火墙状态
firewall-cmd --zone=public --add-port=3306/tcp --permanent (根据需求开放对应的端口)
常见的有443 6379 3306
firewall-cmd --reload 重载防火墙
2. java配置
2.1 无网络
2.11 从共享库拿到压缩包
\192.168.1.122\共享\工具2 里面找到jdk-8u381-linux-x64.tar.gz 然后通过Xftp放到/root下
2.12解压:使用解压命令解压
tar -zxvf “你的文件名” -C /usr/local
2.13配置变量
打开配置文件 vim /etc/profile
鼠标移动到最后 按i进入编辑模式
添加下列内容
export JAVA_HOME=/usr/local/jdk1.8.0_381
export PATH=PATH
添加结束后esc退出编辑模式 shfit+:wq保存
2.14 重载配置文件
source /etc/profile
2.15查看java版本 java -version
在 /usr/local 下执行 运行jar包命令(启动之前要保持mysql和redis服务开启状态)
nohup java -Dfile.encoding=utf-8 -jar lj.jar --server.port=8908 > /usr/local/null 2>&1 &
执行之后查看Java状态
ps -ef | grep java 多查几次,有问题就看 日志 ,没问题就会提示开启成功 ,之后用ip+端口测试
2.2 有网络
切换路径到/root
2.21 下载压缩包
<u>https://download.oracle.com/otn/java/jdk/8u451-b10/8a1589aa0fe24566b4337beee47c2d29/jdk-8u451-linux-x64.tar.gz?AuthParam=1746685279_f3515097ad1c354674bb5fb3177168aa</u> 要提前准备好oracle 账号和密码
根据所需要的版本下载liunx版本的tar.gz jdk
2.22解压:使用解压命令解压
tar -zxvf “你的文件名” -C /usr/local
2.23 配置变量
打开配置文件 vim /etc/profile
鼠标移动到最后 按i进入编辑模式
添加下列内容
export JAVA_HOME=/usr/local/jdk1.8.0_381
export PATH=PATH
添加结束后esc退出编辑模式 shfit+:wq保存
2.24 重载配置文件
source /etc/profile
**2.25查看java版本 java -version **
在 /usr/local 下执行 运行jar包命令(启动之前要保持mysql和redis服务开启状态)
nohup java -Dfile.encoding=utf-8 -jar lj.jar --server.port=8908 > /usr/local/null 2>&1 &
执行之后查看Java状态
ps -ef | grep java 多查几次,有问题就看 日志 ,没问题就会提示开启成功 ,之后用ip+端口测试
3. nginx配置(含ssl模块)
3.1无网络
3.11安装GCC
首先查询gcc --version 版本 可能有环境就不需要安装 (有的话直接跳过下面的gcc相关操作)
进入cd /usr/local/src/ 目录下
创建buildgcc文件夹
上传gcc安装包及相关依赖包
解压依赖包
rpm -Uvh *.rpm --nodeps --force
进入gcc目录
cd /usr/local/src/gcc-4.8.5
查看gcc是否安装成功
gcc -v
3.12 本地下载其他依赖库 并放到/root 目录下
Prce下载地址 https://nchc.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz?viasf=1
Zlib库下载地址 https://zlib.net/fossils/
Openssl下载地址 https://www.openssl.org/source/openssl-1.1.1w.tar.gz
3.2有网络
3.21 更换源
下载之前先换YUM源 将yum换为国内源
方法一:
备份现有源:
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
安装依赖工具
sudo yum install -y wget
下载新的源文件,指令如下:
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo <u>https://mirrors.aliyun.com/repo/Centos-7.repo</u>
也可不下载
方法二:
sudo vi /etc/yum.repos.d/CentOS-Base.repo
然后直接复制下内容:
CentOS-Base.repo
The mirror system uses the connecting IP address of the client and the
update status of each mirror to pick mirrors that are updated to and
geographically close to the client. You should use this for CentOS updates
unless you are manually picking other mirrors.
If the mirrorlist= does not work for you, as a fall back you can try the
remarked out baseurl= line instead.
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/basearch/
http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/basearch/
http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/basearch/
http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/basearch/
http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
保存退出,操作如下:
1、按Esc
2、输入:wq!
3、按Enter
方法三:
配置公共DNS(如Google DNS):
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf
更换CentOS镜像源
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
生成缓存
配置新的源后,需要清理yum的旧缓存并生成新缓存,指令如下:
sudo yum clean all
sudo yum makecache
检查新源
输入以下指令:yum repolist
[图片上传失败...(image-205f36-1748590217020)]
如果输出中包含了阿里源,则证明已换源成功。
更新系统 yum -y update
GCC安装
yum -y install gcc gcc-c++ autoconf make
直接在/root目录下执行
3.22下载相关依赖和 nginx 压缩包
wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz
wget https://zlib.net/fossils/zlib-1.3.1.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
在线下载比较慢,建议迅雷下载放到服务器上
wget https://nginx.org/download/nginx-1.24.0.tar.gz
3.23 Openssl安装配置
安装构建工具和依赖
yum install -y gcc gcc-c++ make zlib-devel pcre-devel geoip-devel epel-release perl-IPC-Cmd perl-Test-Simple
安装之后执行以下命令查看是否安装成功
gcc --version
g++ --version
make --version
rpm -q zlib-devel pcre-devel GeoIP-devel perl-IPC-Cmd perl-Test-Simple
因下载之后的步骤都一致所以放在下面一起写
解压
执行 tar -zxvf nginx-1.24.0.tar.gz -C /usr/local/src
tar -zxvf openssl-1.1.1w.tar.gz -C /usr/local/src
tar -zxvf pcre-8.45.tar.gz -C /usr/local/src
tar -zxvf zlib-1.3.1.tar.gz -C /usr/local/src
openssl编译安装
进入 openssl-1.1.1w 目录
编译
./config --prefix=/usr/local/openssl-1.1.1w \
--openssldir=/usr/local/openssl-1.1.1w/ssl \
no-shared
可能提示需要perl 5库
和上面一样将perl 压缩包放到/root下
tar -zxvf perl.xxx.tar.gz -C /usr/local/src
进入 perl 文件夹cd /perl
编译 ./Configure -des -Dprefix=/usr/local/perl
make
make install安装
安装
make
make install
查看版本 验证是否安装成功
/usr/local/openssl-1.1.1w/bin/openssl version
可能直接查出来版本还是系统自带的,可以按下面步骤操作
备份旧版本
sudo mv /usr/bin/openssl /usr/bin/openssl.old
步骤2:创建符号链接指向新版本
sudo ln -s /usr/local/openssl-1.1.1w/bin/openssl /usr/bin/openssl
更新动态库链接
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
验证版本
openssl version
应显示 1.1.1w
** pcre编译安装**
编译
./configure --prefix=/usr/local/pcre-8.45 \
--enable-utf8 \
--enable-unicode-propertie
安装
make
make install
zlib 编译安装
进入到 /usr/local/src/zlib-1.3.1下
编译 ./configure --prefix=/usr/local/zlib
安装
make
make install
如果安装到自定义路径(如 /usr/local/zlib),需更新链接库配置:
echo '/usr/local/zlib/lib' | sudo tee /etc/ld.so.conf.d/zlib.conf
sudo ldconfig
nginx编译安装
进入到 /usr/local/src/nginx1.24.0下
编译
./configure \
--prefix=/usr/local/nginx1.24.0 \
--with-http_ssl_module \
--with-openssl=/usr/local/src/openssl-1.1.1w \
--with-openssl-opt="no-shared" \
--with-pcre=/usr/local/src/pcre-8.45 \
--with-zlib=/usr/local/src/zlib-1.3.1
make
make install
进入 nginx1.24.0/sbin
./nginx 启动 打开网页 服务器ip测试nginx启动成功
如果使用 --with-openssl-opt="no-shared",需在 OpenSSL 配置时启用静态库:
cd /usr/local/src/openssl-1.1.1w
./config --prefix=/usr/local/openssl-1.1.1w no-shared
证书配置
1.****创建一个目录用于存放证书文件:
sudo mkdir -p /usr/local/nginx1.24.0/conf/ssl
cd /usr/local/nginx1.24.0/conf/ssl
2. 生成私钥
生成一个 2048 位的 RSA 私钥(可以调整为 4096 位以增强安全性):
sudo openssl genrsa -out testyw.key 2048
3. 生成自签名证书
使用 CSR 文件生成自签名证书,有效期为 365 天(可以调整天数):
openssl req -x509 -new -key testyw.key -days 365 -out testyw.crt \
-subj "/C=CN/ST=Beijing/L=Beijing/O=Your Company/CN=your_domain.com"生成的 yourdomain.crt 和 yourdomain.key 文件非常重要,请妥善保存并定期备份。
如果有证书配置看下面 nginx配置案例
server {
listen 443 ssl;
server_name szmp.zhihuiwuxue.com;
ssl_certificate_key cert/zhihuiwuxue.com.key;
ssl_certificate cert/zhihuiwuxue.com.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location /api {
rewrite ^/api/(.*)1 break;
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
root html;
index index.html index.htm;
proxy_pass http://172.20.100.67:8501;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 5;
}
}
证书的相关文件放在/conf/cert目录下
这样配置的证书,主要用于测试
配置局域网设备的域名解析
其他设备需将域名解析到服务器的局域网 IP。
在每台设备的 hosts 文件中添加:
Windows: C:\Windows\System32\drivers\etc\hosts
Linux/macOS: /etc/hosts
192.168.1.100 your_domain.com
4. redis配置
无网络
上传\192.168.1.122\共享\工具2\linux安装部署\redis离线下的redis-3.2.12-2.el7.x86_64.rpm和jemalloc-3.6.0-1.el7.x86_64.rpm 到服务器的/usr/local/src 及 redis-5.0.4.tar.gz 到/root
1. **安装相关依赖 **
执行 rpm -ivh jemalloc-3.6.0-1.el7.x86_64.rpm
rpm -ivh redis-3.2.12-2.el7.x86_64.rpm 安装命令
有网络
1.下载 压缩包
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
下载好后的操作 都一致 所以都放在下面
2. 解压压缩包
tar -xzvf redis-5.0.4.tar.gz -C /usr/local 指定解压到/usr/local 目录下
3. 安装redis
cd /usr/local /redis-5.0.4
make
make install
4. 配置 redis
默认安装目录是在 /usr/local/bin
cd /usr/local/bin
可以复制redis配置文件到bin目录下
cp /usr/local/redis-5.0.4/redis.conf ./
4.1编辑配置文件
vim redis.conf或者 vi redis.conf
1.daemonize no --->yes 允许后台启动
2.bind 127.0.0.0 ---> 0.0.0.0 允许远程访问
3.加一个requirepass 123456 设置123456密码
启动redis(在/usr/local/bin)下执行
./redis-server redis.conf 启动
redis-cli auth 123456
输入shutdown 停止 redis
可选配置:(配置开机自启动)
使用root权限创建服务文件:
sudo vim /etc/systemd/system/redis.service
输入以下内容(根据你的路径调整):
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
User=redis
Group=redis
Restart=always
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
步骤2:创建Redis专用用户(可选但推荐)
sudo useradd -r -M -s /bin/false redis
sudo chown -R redis:redis /usr/local/redis-5.0.4
调整配置文件权限
确保配置文件可被Redis用户读取:
sudo chmod 644 /usr/local/bin/redis.conf
重载Systemd并启用服务
sudo systemctl daemon-reload
sudo systemctl enable redis
sudo systemctl start redis
systemctl status redis
提示:如果配置开机自启动,就需要通过systemctl stop redis 停止,不能通过shutdown,暂时没有更好的解决方法。
启动后使用本机RDM 链接测试
5. mysql配置
5.1 准备工作:先查询是否安装了mysql
查询是否安装了自带的数据库
rpm -qa |grep mariadb 有的话卸载相关数据库
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
sudo yum remove -y mariadb-server mariadb
sudo yum remove -y mysql-server mysql-community-server
特殊情况:允许 MySQL 与其他数据库共存
如果希望保留现有数据库(如 MariaDB),需确保两者使用不同的端口和数据目录:
修改 MySQL 配置文件 /etc/my.cnf,调整端口和路径:
[mysqld]
port=3307 # 改为新端口
datadir=/var/lib/mysql-mysql8 # 改为新路径
初始化数据库时指定新路径:
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql-mysql8
安装相关依赖
yum install -y perl net-tools
无网络
1.上传压缩包
将压缩包通过Xftp传到 服务器 /usr/local/ 中
有网络
1.系统准备
1. 更新系统软件包
sudo yum update -y
2. 安装必要工具(wget、vim等)
sudo yum install -y wget vim perl net-tools
- 下载压缩包
执行
wget <u>https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.34-linux-glibc2.12-x86_64.tar.xz</u>
因下载后的操作一致,所以都放在下面
2.解压压缩包
解压到/usr/local目录并重命名文件夹
创建目标目录
sudo mkdir -p /usr/local/mysql
sudo mkdir -p /data/mysql # 数据目录
解压安装包
sudo tar -xvf mysql-8.0.34-linux-glibc2.12-x86_64.tar.xz --transform 's/mysql-8.0.34-linux-glibc2.12-x86_64/mysql/' -C /usr/local
3.****创建MySQL用户和组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
4.设置目录权限
sudo chown -R mysql:mysql /usr/local/mysql
sudo chown -R mysql:mysql /data/mysql
进入MySQL目录
cd /usr/local/mysql
初始化数据库(生成临时密码)
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/data/mysql
可能会提示缺少 libaio.so.1 库
这是要执行命令查看系统信息
可以通过
<u>https://vault.centos.org/7.9.2009/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm</u> 下载对应版本的库,进行安装
rpm -ivh libaio-*.rpm
可以访问外网就直接sudo yum install libaio 可以下载安装 比较方便。
初始化完成后,记录输出的临时密码(或查看错误日志中的密码):
hgupZPa_)5EG
grep 'temporary password' /var/lib/mysql/error.log
**5.****配置MySQL服务******
创建配置文件****/etc/my.cnf****:
sudo tee /etc/my.cnf <<EOF
[mysqld]
# 基础路径配置
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
# 网络配置
port=3306
bind-address=0.0.0.0
# 字符集配置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 日志配置
log-error=/data/mysql/error.log
pid-file=/data/mysql/mysql.pid
# 安全配置
skip-name-resolve
EOF
创建必要目录并授权
sudo mkdir -p /data/mysql/{data,logs}
sudo chown -R mysql:mysql /data/mysql
创建Systemd服务文件 /etc/systemd/system/mysql.service
sudo tee /etc/systemd/system/mysql.service <<EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Restart=on-failure
RestartSec=5s
资源限制(可选)
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
重新加载服务配置
systemctl daemon-reload
systemctl start mysql
systemctl enable mysql 设置开启启动
6.****登录MySQL并修改密码
使用临时密码登录
mysql -u root -p
输入临时密码后,执行以下命令修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
退出MySQL后,使用新密码重新登录
mysql -u root -p
常见问题处理
1. 安装时提示版本冲突
如果仓库中默认指向更高版本(如 8.0.36),需手动禁用默认仓库并启用旧版本子仓库:
编辑仓库配置文件
sudo vi /etc/yum.repos.d/mysql-community.repo
禁用默认仓库(设置 enabled=0)
启用特定子仓库(如 mysql80-community)
2. 忘记 root 密码
停止 MySQL 服务
sudo systemctl stop mysqld
以跳过权限验证方式启动
sudo mysqld_safe --skip-grant-tables &
登录后更新密码
mysql -u root
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
附录:手动下载 RPM 包(备用方法)
如果仓库中没有所需版本,可手动下载并安装:
下载 MySQL 8.0.34 社区版 RPM 包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-server-8.0.34-1.el7.x86_64.rpm
安装依赖
sudo yum install -y openssl libaio numactl
安装 MySQL
sudo rpm -ivh mysql-community-server-8.0.34-1.el7.x86_64.rpm
可选:配置环境变量
将MySQL二进制路径添加到PATH
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
开放端口
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
启动mysql
service mysql start
查看MySQL的进程 ps -ef|grep mysql
service mysql status
开启mysql允许远程访问
查看所有数据库
show databases;
use mysql;
执行update user set host='%' where user='root';
开启任何主机都能远程访问MySQL
执行FLUSH PRIVILEGES;刷新权限
端口相关问题汇总:
先统计需要用的端口,汇总到运维,待运维给出开放通知后,到服务器 查看服务器内部防火墙开启状态,因为先要确认端口开通成功,建议先关闭防火墙,直接使用nginx监听开放端口,如果可以监听成功则说明运维开放端口成功无误。
firewall-cmd --zone=public --remove-port=9001/tcp --permanent 关闭端口