在 CentOs7 中安装宝塔面板和 Docker(包括MySQL,Redis)

该文详细介绍了如何在CentOS7系统中通过Xshell连接,然后安装宝塔面板,并使用Docker来安装和配置MySQL和Redis。步骤包括安装宝塔面板的脚本,开启防火墙端口,安装Tomcat和Java8,以及使用Docker命令安装MySQL和Redis,同时设置容器端口映射和配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 使用 Xshell 连接 CentOs7

如果有云服务器直接用 ip,端口,密码连接

如果没有,可以使用虚拟机安装 CentOs7 再连接,具体教程可参考:

在虚拟机 VMware 中安装 CentOs 7及使用 Xshell 进行连接_凉了的凉茶的博客-CSDN博客

这里我选择连接虚拟机

image-20230618161036573

image-20230618161058091

2. 安装宝塔面板

宝塔面板官网:宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 (bt.cn)

Centos 安装脚本

💡 记得打开安全组和防火墙端口(如果使用腾讯云或阿里云等服务器,需要打开两层防火墙)

# 提升到 root 权限
sudo -i 

# 安装脚本
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

输入命令行回车,如果有提示,选择 y,回车,等待安装,出现如下内容则安装成功

image-20230618163208894

宝塔也可以使用指令查看相关信息

# 查看面板地址
/etc/init.d/bt default

image-20230618164349961

使用内网进行连接,如果是云服务器就使用外网,或者两个都试一试

image-20230618164701054

image-20230618164710430

输入账号密码登录

image-20230618164738438

填写手机号,然后关闭安装套件(自己安装)

image-20230618164902901

修改宝塔账号密码

可跳过

image-20230618173712318

2.1 安装 Tomcat(同 Java 8)

安装 Tomcat 会一起安装 Java 8

在软件商店搜索 Tomcat,点击安装

image-20230618165137514

选择 9 版本

image-20230618165200455

2.1 安装 Docker

命令行下载

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

image-20230618170833958

检查是否安装成功

docker -v

image-20230618171102849

成功后,打开宝塔,软件商店下载 docker 管理,安装

image-20230618171151757

更换镜像加速器(推荐阿里云)

容器镜像服务 (aliyun.com)

扫码登录后找到镜像仓库

每个人都不同,复制自己的镜像仓库

image-20230618171351652

放到首页,点击 Docker管理器

image-20230618171517448

image-20230618171537183

选择加速器,复制镜像到文件中,点击保存

image-20230618171709370

2.2 安装 MySQL (Docker 环境)

# mysql:8.0
# -p 左边为宿主机端口,右边为容器端口
# 可自行修改容器名称和密码以及端口映射(即centos-mysql,12345678,3306:3306)
docker run -it --name centos-mysql  -e MYSQL_ROOT_PASSWORD=12345678 -p 3306:3306 -d mysql:8.0

如果没有镜像,会先从仓库拉取镜像,在创建容器,可以看到容器已经创建

image-20230618174056710

2.3 安装 Redis(Docker 环境)

在宝塔中新建文件夹,这里在 wwwroot 中新建了 docker ,在里面新建了 redis,再建了 conf,data

image-20230618190645289

在 conf 中新建文件 redis.conf

内容

# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#bind 127.0.0.1

protected-mode no
port 6379
tcp-backlog 511
requirepass 12345678
timeout 0
tcp-keepalive 300
#daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "redis.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

# -p 左边为宿主机端口,右边为容器端口
# 可自行修改容器名称和密码以及端口映射(即centos-redis,6379:6379,12345678)
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name centos-redis -v /www/wwwroot/docker/redis/redis.conf:/etc/redis/redis.conf -v /www/wwwroot/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 12345678
参数作用
-p 宿主机端口:容器内端口设置端口
–name 容器名设置容器名,自定义
–restart=“always”自动持久化
-v 宿主机绝对路径:容器内绝对路径文件挂载,本句中先将配置文件挂载进容器,然后将redis的备份文件文件夹挂载出来
-d后台启动 redis
redis:6.2.6使用的镜像为redis:6.2.6
–requirepass设置密码
–appendonly ye开启redis 持久化

image-20230618175114602

进入到容器里面,使用 docker exec

# 查看容器
docker ps
# 进入容器
# docker exec -it <容器名> /bin/bash
docker exec -it centos-redis redis-cli
# 密码校验
127.0.0.0:6370>auth 12345678
# 退出容器
exit
<think>嗯,用户之前问过关于不使用框架、自行搭建网页的难度,现在他想梳理建设IT Helpdesk项目的整体思路,并且指定了使用AI生成代码,系统环境是CentOS 7.9,宝塔面板LNMP环境,包括Nginx 1.26、MySQL 5.7、PHP 8.0phpMyAdmin 5.1。 首先,我需要确认用户的需求。他可能是一个新手,想利用AI辅助开发,但不太懂代码,所以需要详细的步骤推荐的框架。之前的回答里提到了分阶段开发使用低代码平台,但用户这次明确要用AI生成代码,并且指定了技术栈,可能倾向于更具体的实施方案。 接下来,用户提到的环境是CentOS 7.9,宝塔面板,LNMP。宝塔面板简化了服务器管理,所以安装配置应该不是大问题。但用户需要的是整体思路,所以需要分阶段规划,从环境准备到开发、测试、部署,再到维护。 然后,考虑框架选择。用户之前的问题提到不使用框架,但这里可能需要推荐合适的框架,因为使用框架能提高效率,特别是对于新手。前端可能用Vue.js或React,后端用Laravel,因为PHP环境已经准备好了。这些框架有成熟的社区AI支持,方便生成代码。 AI工具的选用,比如ChatGPT、GitHub Copilot,这些能帮助生成代码片段,但需要注意安全性正确性,尤其是数据库操作权限控制部分。用户可能不了解代码安全,需要强调人工审核的重要性。 数据库设计方面,IT Helpdesk需要工单表、用户表等,需要给出基本的字段建议,比如状态机、外键关联。同时,提醒用户使用ORM如Laravel的Eloquent,避免SQL注入。 部署部分,宝塔面板已经简化了流程,但SSL证书、备份策略这些需要指导。后期维护可能遇到问题,比如调试升级,需要提前规划。 另外,用户可能没有考虑到安全风险,比如XSS、SQL注入,应该在代码生成时加入过滤验证,比如Laravel的中间件验证功能。 最后,需要总结一个步骤清晰的计划,分阶段进行,每个阶段的关键任务使用的工具,让用户能按部就班地完成项目。同时提醒潜在风险,比如AI生成的代码可能存在漏洞,需要人工检查。</think>以下是基于**CentOS 7.9 + 宝塔面板LNMP环境**的IT-Helpdesk系统建设全流程规划(含AI代码生成策略): --- ### 一、技术栈选型建议 | 模块 | 推荐方案 | 选择理由 | AI支持度 | |-------------|-------------------------|------------------------------------|---------| | **前端** | Vue 3 + Element Plus | 组件丰富,AI训练数据量大(GitHub超14万star) | ★★★★☆ | | **后端** | Laravel 10 (PHP 8.0) | 自带Eloquent ORM,安全性高 | ★★★★ | | **数据库** | MySQL 5.7 + Redis | 宝塔面板原生支持,事务处理稳定 | ★★★★ | | **部署** | 宝塔面板+Docker | 可视化操作降低运维难度 | ★★★★☆ | > 注:phpMyAdmin 5.1已预装,用于数据库管理 --- ### 二、分阶段实施流程 #### 阶段1:环境配置(1天) 1. **宝塔初始化** ```bash # 宝塔面板常用命令 bt default # 查看面板地址 bt restart # 重启面板 ``` - 创建站点:域名→PHP 8.0→关闭防跨站 - 安全配置:SSH端口修改→防火墙放行80/443 2. **LNMP参数优化** ```nginx # nginx.conf 关键配置(AI生成模板) worker_processes auto; keepalive_timeout 65; gzip on; # 启用压缩 ``` #### 阶段2:数据库设计(2天) 1. **核心表结构** | 表名 | 字段示例(AI提示词参考) | |-------------|------------------------------------------| | tickets | `id, title, content, status(enum), user_id` | | users | `id, name, role(admin/user), password_hash` | | attachments | `file_path, ticket_id, upload_time` | ```sql -- AI生成示例(需人工校验) CREATE TABLE tickets ( id INT AUTO_INCREMENT PRIMARY KEY, status ENUM('open', 'in_progress', 'closed') DEFAULT 'open' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 2. **索引优化** - 给`tickets.user_id`添加外键索引 - 使用`EXPLAIN`分析慢查询 #### 阶段3:功能开发(7-15天) 1. **AI代码生成策略** - **前端**:用ChatGPT生成Vue组件模板 ```vue <!-- AI生成工单列表组件 --> <template> <el-table :data="tickets"> <el-table-column prop="title" label="工单标题"></el-table-column> <el-table-column prop="status" label="状态"> <template #default="{row}"> <el-tag :type="statusColor(row.status)">{{ row.status }}</el-tag> </template> </el-table-column> </el-table> </template> ``` - **后端**:Copilot生成Laravel控制器 ```php // AI生成工单API示例 class TicketController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|max:255', // 自动验证 ]); return Ticket::create($validated); } } ``` 2. **安全加固** - SQL注入防护:强制使用Laravel Query Builder - XSS防护:前端用`v-html`替代`{{{ }}}`输出 - 权限控制:实现Policy类 ```php // AI生成权限策略 class TicketPolicy { public function update(User $user, Ticket $ticket) { return $user->id === $ticket->user_id; // 仅创建者可修改 } } ``` #### 阶段4:联调测试(3天) 1. **接口测试** ```bash # 用curl测试API(AI生成测试命令) curl -X POST -H "Content-Type: application/json" -d '{"title":"网络故障"}' http://域名/api/tickets ``` 2. **压力测试** - 使用宝塔自带「网站监控」模块 - 调整PHP-FPM参数: ```ini pm.max_children = 50 # 根据服务器内存调整 pm.start_servers = 10 ``` #### 阶段5:部署上线(1天) 1. **宝塔一键部署** - 上传代码到`/www/wwwroot/域名` - 配置SSL证书(Let's Encrypt免费版) 2. **计划任务** ```bash # 每日凌晨备份数据库(AI生成命令) 0 3 * * * /www/server/mysql/bin/mysqldump -u root -p密码 数据库名 > /backup/db_$(date +\%F).sql ``` --- ### 三、关键风险控制 1. **AI代码缺陷** - 必须人工检查以下高危点: - 文件上传漏洞(需限制扩展名) - 会话固定攻击(使用`laravel_session`机制) - 密码存储(必须用`bcrypt`哈希) 2. **环境兼容问题** - 测试PHP 8.0特性:如`match`表达式、JIT编译 - 验证Nginx 1.26的HTTP/3支持性 --- ### 四、推荐AI工具链 | 场景 | 工具 | 使用技巧 | |---------------|-----------------------------|-----------------------------------------------------------------------| | 代码生成 | GitHub Copilot + ChatGPT4 | 输入详细注释:`// 需要实现工单状态流转,用Laravel状态机,支持open/in_progress/closed` | | 调试辅助 | PhpStorm + Xdebug | 用AI解释错误日志:`[Error] Class 'Ticket' not found` → 检查命名空间引入 | | 安全审计 | SonarQube + OWASP ZAP | 运行AI生成的扫描命令:`docker run -t zap zap-baseline.py -t http://域名` | --- ### 五、维护升级建议 1. **监控配置** - 宝塔面板开启「异常监控推送」 - 日志分析命令: ```bash tail -f /www/wwwlogs/域名.error.log | grep -E '500|502|503' # 实时捕获错误 ``` 2. **迭代策略** - 优先用AI生成补丁代码 - 重大更新前执行: ```bash php artisan down # 进入维护模式 git pull origin master php artisan migrate --force php artisan up ``` > 实施提示:所有AI生成的SQL语句必须通过phpMyAdmin执行前备份数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉了的凉茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值