宝塔面板简介

宝塔面板是一款专门简化服务器运维操作的可视化 Web 管理工具,支持 Linux 和 Windows 两大主流服务器系统,全球超 2000 万台服务器安装使用,而且基础核心功能全免费,像网站管理、环境部署、资源监控等入门所需功能无需付费

宝塔面板把复杂的服务器命令(如环境部署、软件安装等)封装成图形化按钮,通过网页界面点击操作即可完成,不用记忆繁琐命令。Linux 端支持 CentOS、Ubuntu、Debian 等系统,Windows 端支持 2008、2012 等多个版本;同时能适配各类云服务器(阿里云、腾讯云等)和物理服务器。

一般宝塔面板常用的核心功能如下:

  • 一键部署运行环境:这是入门最常用的功能。能一键安装 LAMP(Linux+Apache+MySQL+PHP)、LNMP(Linux+Nginx+MySQL+PHP)等主流网站运行环境,也支持 Tomcat、Node.js 等针对 Java、前端项目的环境,省去手动配置的复杂步骤。
  • 网站与域名管理:快速创建网站,绑定自己的域名;还能一键部署 SSL 证书,让网站开启 HTTPS,同时支持伪静态、防盗链等基础网站配置,新手也能快速搭建起可访问的网站。
  • 数据库与文件管理:支持 MySQL、MariaDB 等常用数据库的一键安装,可图形化操作数据库的备份、还原、权限设置;内置文件管理器,能在线上传、下载、编辑、打包解压服务器文件,不用额外借助 FTP 工具。
  • 服务器资源监控:直观展示服务器 CPU、内存、磁盘、网络的实时使用情况,还有数据记录,能清晰知道服务器运行状态,比如是否因资源占用过高导致网站卡顿。
  • 一键部署主流应用:针对新手开发者,可一键部署 WordPress(博客)、Discuz(论坛)、Halo(轻量博客)等常见源码程序,几分钟就能搭建好对应的网站,无需手动配置程序环境。

使用:

  1. 用 SSH 连接服务器,输入对应系统的安装命令(比如 CentOS 系统输入yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh)。
  2. 安装完成后,记录下面板访问地址(默认端口 8888)、初始用户名和密码。
  3. 打开浏览器访问面板地址,登录后先修改默认密码,再根据需求安装 LAMP/LNMP 等基础环境。
  4. 环境安装完成后,就能创建网站、部署程序,开始服务器管理操作了。

使用宝塔面板

宝塔面板安装

这个一般情况下,购买带有宝塔面板的云服务器就行,或者你可以切换带有宝塔的镜像

宝塔的安装也就是把服务器接口打通,然后去官网一装的事,进入宝塔面板安装教程,复制云服务器系统的宝塔面板安装指令。

然后你要安装一个远程ssh链接的工具

本案例使用腾讯云

连接到服务器

一般情况下,需要重置密码才能拿到

新建连接连接到云服务器,输入正确的内容,主机就是主机名,ssh默认是22端口,用户名一般默认是 root

image-20251111154449885

这里如果有需要,就在这里进行执行安装宝塔面板的命令安装宝塔面板

腾讯云能在实例的详情直接通过登录进入宝塔面板,前提是你选择了带宝塔的服务器

image-20251111160140898
image-20251111160942170

修改一下宝塔的默认端口,随便一个不冲突的就行,要不然总是提示

注意你需要新增一个端口对外访问就需要在安全组里面进行放行的配置

image-20251111160820377

然后就进来了

宝塔面板安装JDK

腾讯云使用yumdnf进行包管理,因为 OpenCloudOS 通常基于 RHEL/CentOS 体系,所以可能没有使用 apt 包管理器

1
yum install -y java-21-openjdk-devel.x86_64

输入这样的命令安装 JDK21,RHEL/CentOS 系系统中,OpenJDK 的包名格式通常为 java-{版本}-openjdk-devel(开发版,包含 javac 等工具),版本号直接使用数字(如 8、11、17、21),而非 1.8.0 这种格式(后者是旧版 8 的特定命名)。

若安装时提示包不存在,可先执行 yum search java-21-openjdk 确认系统中可用的 21 版本包全名,再替换安装命令中的包名即可。

如果使用宝塔面板,就使用 JDK 管理中下载

因为我是 Spring Cloud 的微服务项目,我就没搞 Tomcat,所以直接下 JDK 就行

image-20251111165526658

复制JDK地址

image-20251111165748659

点击右侧文件,进入根目录的root文件夹下,双击编辑.bashrc文件

image-20251111170210232

在文件后面填入如下内容

1
2
3
4
export JAVA_HOME=/www/server/java/jdk-21.0.2
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib
export JRE_HOME=${JAVA_HOME}/jre

测试一下 JDK 是否可用

1
java -version
image-20251111170324404

面板内安装其他必要内容

MySQL 8.0.25

安装方式这里根据自身实际的情况选择,如果当前环境为生产环境,一般使用编译安装,确保后期程序运行的稳定性

可以通过以下命令检查Nginx服务器是否打开

软件商店点击直接安装 mysql,安装完了测试一下服务的可用性

MySQL编译安装方式极其消耗机器性能,普通云服务器请勿尝试,避免磁盘 IO 过高导致服务器宕机。

image-20251111170548599

修改一下配置文件,打开配置文件,找到 [mysqld] 段落下的 bind-address 项:

  • 若存在 bind-address = 127.0.0.1,将其修改为 bind-address = 0.0.0.0(允许所有 IP 连接);
1
sudo systemctl status mysql

记得把端口放行

image-20251111171113989

可以看到是没有问题的

Redis 7

建议打开在首页显示

image-20251111171310560

开放6379默认端口,记得宝塔和云服务那边的规则组都开

打开Redis配置控制台,修改ECS服务器安全组的访问规则

image-20251111171500049

将IP绑定设置为 0.0.0.0 ,同时一定要设置Redis访问密码

image-20251111171539474

重启之后测试一下

在宝塔面板的「终端」或服务器 SSH 中执行:

1
systemctl status redis

连接一下看看

1
redis-cli -a "你的密码"

宝塔面板安装Nacos3

如果不使用 Docker,安装过程可以说是相当扫码了

首先 java 和 Mysql 需要配置好,JDK需要大于18

从 Nacos 的官方下载页面(https://github.com/alibaba/nacos/releases)下载最新版本的 Nacos 安装包,例如 nacos-server-2.5.1.tar.gz

我是习惯将其放置在 /usr/local 目录下,然后解压压缩包

1
2
cd /usr/local/nacos
tar -zxvf nacos-server-3.1.0.tar.gz
image-20251111173642412

解压完成后,你会看到一个名为 nacos 的文件夹。

一般我们需要使用 MySQL 数据库去做Nacos的持久化,进入 conf 目录,编辑 application.properties 文件:

image-20251111173939229

在文件中添加以下内容

1
2
3
4
5
6
7
8
9
10
# 数据源平台设置为mysql
spring.datasource.platform=mysql
# 数据库实例数量
db.num=1
# 你的MySQL连接URL,注意数据库名、时区等参数
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=UTC
# 你的数据库用户名
db.user.0=your_username
# 你的数据库密码
db.password.0=your_password

修改完成后按Ctrl+O保存,Ctrl+X退出。

登录到 MySQL 数据库并创建一个名为 nacos 的数据库:

1
mysql -u root -p

输入密码后,执行以下 SQL 命令

先创建 'root'@'%' 并设置密码:

1
CREATE USER 'root'@'%' IDENTIFIED BY 'password';

创建用户后,再授予对 nacos 数据库的权限:

1
2
GRANT ALL PRIVILEGES ON nacos.* TO 'root'@'%';
FLUSH PRIVILEGES;

然后来到 nacos/conf 下,配置数据库初始化脚本

1
mysql -u root -p nacos < nacos-mysql.sql

放宝塔里面执行也可以,然后可以看到表都产生了

image-20251111175332170

切换到 bin 目录下,使用单例模式启动,并且配置 jwt

1
bash startup.sh -m standalone
image-20251111175617841

配置初始密钥

在 Linux 终端中执行以下命令,直接生成符合要求的 Base64 密钥(无需手动拼接字符串)

1
2
# 生成一个 48 位的随机字符串(满足 ≥32 位要求),并进行 Base64 编码
openssl rand -hex 24 | base64

例如:ZjJjMjBmZmQwNzM3OWYwYzYyZTdiNDBlZjk5ZmViZjcxMjcwMTZkNTEzYmFlZTc3Cg==

认证的密钥对自己配置一下就可以了

启动完成后,可以通过查看日志文件确认 Nacos 是否正常运行:

1
cat /usr/local/nacos/nacos/logs/startup.log
1
tail -f /usr/local/nacos/nacos/logs/startup.log

配置完成

image-20251111175824306

典中典之忘放开8080端口

image-20251111175947388

这样就配置好了,Nacos第一次控制台启动慢点是正常的

这才对

image-20251111180225853

但是为了确保 Nacos 在系统启动时自动运行,我们需要将其配置为服务。

创建一个名为 nacos.service 的 systemd 服务文件:

1
sudo nano /etc/systemd/system/nacos.service

byd这个服务器怎么连 nano 都没有

1
sudo yum install -y nano

编辑服务的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Nacos Service
After=network.target

[Service]
Type=forking
ExecStart=/bin/bash /usr/local/nacos/nacos/bin/startup.sh -m standalone
ExecStop=/bin/bash /usr/local/nacos/nacos/bin/shutdown.sh
User=root
Restart=on-failure

[Install]
WantedBy=multi-user.target

重新加载 systemd 配置

1
sudo systemctl daemon-reload

启用服务配置

1
sudo systemctl enable nacos.service

启动服务

1
sudo systemctl start nacos.service

检查服务状态

1
sudo systemctl status nacos.service

如果需要关闭 Nacos,可以在 bin 目录下执行以下命令:

1
bash shutdown.sh

注意,Nacos要放行如下端口才能实现本地服务通信云上Nacos

image-20251111234054125

宝塔面板安装MinIO

由于宝塔面板的MinIO有问题,建议按照一般服务器的情况部署

使用wget或curl下载MinIO服务器二进制文件。以下命令下载最新稳定版并赋予执行权限:

1
2
3
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin/
image-20251111234804092

创建minio的专用用户

1
2
3
# 创建 minio 用户和组
sudo groupadd -r minio
sudo useradd -r -g minio -s /bin/false minio

设置文件和目录权限

1
2
3
4
5
6
# 给 minio 二进制文件执行权限
sudo chmod +x /usr/local/minio/minio

# 设置数据目录所有权
sudo chown -R minio:minio /data/minio
sudo chmod -R 755 /data/minio

创建数据目录

1
2
mkdir -p /data/minio/data
mkdir -p /data/minio/config

创建服务的配置文件

1
sudo vim /etc/systemd/system/minio.service
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
[Unit]
Description=MinIO Object Storage Service
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=minio
Group=minio
WorkingDirectory=/usr/local/minio
Environment="MINIO_ROOT_USER=minioadmin"
Environment="MINIO_ROOT_PASSWORD=minioadmin"
ExecStart=/usr/local/minio/minio server /data/minio/data --console-address ":9090" --address ":9000"
Restart=on-failure
RestartSec=5
LimitNOFILE=65536

# 安全设置
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/data/minio

[Install]
WantedBy=multi-user.target

重新加载并启动服务

1
2
3
4
5
6
7
8
9
10
11
# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 启动 MinIO 服务
sudo systemctl start minio

# 检查服务状态
sudo systemctl status minio

# 启用开机自启
sudo systemctl enable minio

当然你用宝塔也行

image-20251111235134313

进行设置

image-20251111235151963

正常填写就行

Host就填写 MinIO 服务器的域名或公网 / 内网 IP 地址就行,需包含端口(默认端口是 9000,若未修改可填 http://你的服务器IP:9000https://你的域名:9000)。

配置服务文件

1
sudo nano /etc/systemd/system/minio.service

写入配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=MinIO Object Storage # 服务描述:说明这是 MinIO 对象存储服务
After=network.target # 依赖关系:确保在网络就绪后启动服务

[Service]
User=minio-user # 以 minio-user 用户身份运行服务
Group=minio-user # 以 minio-user 用户身份运行服务
Environment="MINIO_ROOT_USER=admin" # 设置环境变量:MinIO 的管理员用户名
Environment="MINIO_ROOT_PASSWORD=your_secure_password" # 设置环境变量:管理员密码
ExecStart=/appserver/minio/minio server /data/minio --console-address ":9090"
# 启动命令

Restart=always # 服务崩溃后自动重启
RestartSec=5s # 重启前等待 5 秒
LimitNOFILE=65536 # 允许的最大文件描述符数(避免资源不足)

[Install]
WantedBy=multi-user.target # 指定服务在系统多用户模式(正常启动状态)下启用

把 Java 项目部署到服务器上运行

我的项目是微服务项目,所以可能会复杂很多很多

注意区分你的部署方式

  • Tomcat 部署:需要安装 Tomcat 容器,将 WAR 包部署到容器中
  • Spring Boot 部署:内置容器,只需要 JDK 环境,直接运行 JAR 包

Maven

首先要装Maven,Maven没办法通过宝塔安装

通过终端进入存放压缩包的目录

1
cd /usr/local

访问 Maven 官方下载页面:maven.apache.org/download.cg… 下载最新版本的二进制压缩包(通常为 .tar.gz 文件)。

执行解压命令:

1
tar -xvf apache-maven-3.8.1-bin.tar.gz

系统范围配置,修改全局环境变量文件:

1
vim /etc/profile

在文件末尾添加以下内容:

1
2
3
# Maven 环境变量
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin

刷新

1
source /etc/profile
image-20251112164355744

Maven 虽然没有宝塔,但是安装也是比较简单的

为了提升构建速度及稳定性,推荐配置国内镜像仓库,如阿里云 Maven 仓库,避免下载官方中央仓库时网络缓慢问题。

编辑用户目录下的 settings.xml,路径通常为:~/.m2/settings.xml。若没有此文件,可以在 /usr/local/maven/conf/ 复制一份到 .m2 目录并修改。

添加阿里镜像配置:

1
2
3
4
5
6
7
8
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

然后将项目包通过宝塔面板上传到服务器并解压,然后添加项目进入 网站 > Java项目,点击 添加项目

image-20251113193456906

项目路径是选择你 SpringBoot 项目的根目录(通常是包含target文件夹、pom.xml等文件的目录)

项目名称无需手动填写,选择项目文件后会自动获取(通常是项目的 ArtifactId,即pom.xml<artifactId>的值)。

创建完成后使用你对应的端口和路径访问项目后端的接口

那么涉及到多个服务怎么办?

你可以把上述的每个单独的需要运行的 jar 包打到上面的项目里,然后按顺序运行

或者我是直接写了个脚本

为服务器添加一个域名

准备工作

  • 拥有一个已实名认证的主域名(如 yourdomain.com)。
  • 明确服务器的公网 IP 地址

进入你购买域名的平台(如阿里云、腾讯云),找到 “域名解析” 或 “DNS 管理” 入口,选择你的主域名(如 yourdomain.com)。

那么如果你需要解析二级域名,就需要为你的主域名添加二级域名的 A 记录

点击 “添加记录”,填写以下信息:

  • 记录类型:选择 A 记录(将域名直接指向服务器 IP)。
  • 主机记录:填写二级域名的前缀(如 apiblog,最终二级域名为 api.yourdomain.com)。
  • 记录值:填写服务器的公网 IP 地址
  • TTL:默认选 600秒(10 分钟,解析生效较快)。
  • 示例:若二级域名为 api.yourdomain.com,则主机记录填 api,记录值填服务器 IP。
image-20251113194642633

提交后,DNS 解析通常在10 分钟到 2 小时内全球生效。可通过 ping 二级域名(如 ping api.yourdomain.com)验证,若返回服务器 IP 则解析成功。

如何在服务器(宝塔面板)中绑定二级域名

  1. 添加站点并绑定二级域名

    登录宝塔面板,点击左侧 “网站”→“添加站点”:

    • 域名:填写完整的二级域名(如 api.yourdomain.com)。
    • 根目录:选择项目的存放路径(如 /www/wwwroot/api-project)。
    • 其他选项默认,点击 “提交”。
  2. 修改 nginx配置文件,下面细说,这里简要看一下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    server {
    listen 80;
    server_name api.yourdomain.com; # 替换为你的二级域名
    root /www/wwwroot/api-project; # 替换为项目根目录
    index index.php index.html index.htm;

    # 按需添加其他配置(如反向代理、静态资源缓存等)
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    }

那么如何开启 https

为二级域名申请免费 SSL 证书(宝塔面板支持一键申请 Let’s Encrypt):

  1. 点击站点的 “SSL”→“申请证书”,选择 “Let’s Encrypt”。
  2. 填写邮箱并选择域名(自动识别已解析的二级域名),点击 “申请”。
  3. 申请成功后,强制 HTTPS 访问(开启 “强制 HTTPS” 开关)。
image-20251113201752221

但是问题来了,例如我的服务器的nginx不是从宝塔面板搞的,是自己装的然后配置的nginx和我的网站,那么我如何不使用宝塔面板申请https

Certbot 是 Let’s Encrypt 官方的自动化证书管理工具,支持一键申请和续期。根据服务器系统选择命令:

1
sudo yum install -y certbot python3-certbot-nginx

执行以下命令,替换 yourdomain.com 为你的实际域名(支持多个域名,用 -d 追加):

1
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
image-20251113200944623

呃呃别忘了 Certbot 默认会去 /etc/nginx/nginx.conf 路径查找 Nginx 配置文件,但是如果没有,就需要明确告诉 Certbot 你的 Nginx 配置文件和二进制程序的实际路径

image-20251113201220781

执行后会进入交互流程:

  1. 输入邮箱(用于证书到期提醒)→ 回车;
  2. 同意服务条款(输入 Y)→ 回车;
  3. 选择是否共享邮箱(一般输入 N)→ 回车;
  4. 选择是否强制 HTTP 跳转到 HTTPS(推荐输入 2)→ 回车。

如果出现这种情况

image-20251113201351412

国内服务器(如腾讯云、阿里云)要求域名必须备案,未备案的域名会被拦截,无法正常访问(返回拦截页面)。

使用Nginx部署Vue3前端项目

找到项目所在位置进行打包得到dist文件夹

注意:如果是做的前后端分离的项目,前端在进行请求时要把 localhost 改成后端服务的ip地址

然后去宝塔放到进去你的 dist,建议和后端一个根目录

我这个添加过了,不再添加了

image-20251113195509530
image-20251113195452129

下载 nginx 不用说了,宝塔上来就有基本,注意在防火墙开放端口

image-20251113193833590

然后配置 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
server {
listen 80; # 监听80端口,若配置了SSL可同时监听443端口
server_name 你的域名或IP; # 替换为你的域名或服务器公网IP

# 项目根目录(即dist文件夹的路径)
root /www/wwwroot/vue3-project/dist;

# 配置索引页
index index.html index.htm;

# 解决Vue路由的history模式刷新404问题
location / {
try_files $uri $uri/ /index.html;
}

# 静态资源缓存(可选,提升访问速度)
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000";
}

# 日志配置(可选)
access_log /www/wwwlogs/vue3-access.log;
error_log /www/wwwlogs/vue3-error.log;
}
image-20251113194214130

因为我这边是引入的配置,所以就不给大家看了

检查在Linux终端下使用指令查看该端口是否的确开放了。

1
firewall-cmd --zone=public --list-ports 

当然你使用宝塔面板左侧 “网站”→“添加站点”,填写域名(若没有域名可填服务器 IP)、选择站点根目录(即存放dist文件夹的路径,如/www/wwwroot/vue3-project),其他选项默认,点击 “提交”,也可以

别忘了点击新建站点的 “设置”→“配置文件”,将默认配置替换为上面内容

记得重启nginx

image-20251113202950325

好哩

我的证书过期114514年了,就没搞