目录

  1. 前期准备与面板安装
  2. 面板基础配置与安全加固
  3. Web环境部署与网站管理
  4. 数据库深度管理
  5. 服务器运维与监控
  6. 企业级安全实践
  7. 性能优化实战
  8. 备份与灾备方案
  9. 高可用架构部署
  10. 常用命令行大全
  11. 常见问题与故障排除

1. 前期准备与面板安装

1.1 系统要求

推荐系统

  • Debian 12(最佳兼容性与性能)
  • Ubuntu 22.04 LTS
  • Alibaba Cloud Linux 3
  • OpenCloudOS 9

最低配置

  • CPU:1核
  • 内存:512MB(推荐1GB以上)
  • 磁盘:10GB以上
  • 网络:公网IP,带宽1Mbps以上

重要注意事项

  • 必须使用纯净系统,未安装任何Web环境(Apache/Nginx/PHP/MySQL)
  • 必须使用root账号执行安装命令
  • 服务器需能正常访问互联网

1.2 最新版安装命令(2026年5月)

通用安装脚本(推荐)

if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

分系统安装命令

# CentOS/RHEL系统
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

# Ubuntu/Debian系统
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

安装过程

  1. 执行安装命令后,输入y确认安装到/www目录
  2. 等待约2-5分钟,安装完成后会显示面板登录信息
  3. 保存好面板地址、用户名和密码

1.3 安装后验证

# 查看面板状态
bt status

# 查看面板登录信息
bt 14

2. 面板基础配置与安全加固

2.1 首次登录配置

  1. 登录面板后,系统会自动推荐安装LNMP/LAMP环境
  2. 生产环境推荐:Nginx 1.24+ + MySQL 8.0+ + PHP 8.2+
  3. 选择"编译安装"以获得更好的性能(比极速安装慢,但更稳定)

2.2 基础安全配置(必须执行)

2.2.1 修改默认端口与入口
# 修改面板端口(推荐使用20000-50000之间的随机端口)
bt 8
# 输入新端口号,如34567

# 修改安全入口
bt 15
# 输入自定义安全入口,如/btadmin_secure
2.2.2 开启面板SSL
  1. 进入面板 → 面板设置 → 基本设置
  2. 开启"面板SSL",使用Let’s Encrypt免费证书
  3. 强制HTTPS访问
2.2.3 配置访问白名单

面板级白名单

  1. 进入面板 → 安全 → 面板访问白名单
  2. 添加公司办公IP和管理员个人IP

防火墙级白名单(更安全):

# CentOS/RHEL系统(firewalld)
firewall-cmd --permanent --remove-port=8888/tcp
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="34567" accept'
firewall-cmd --reload

# Ubuntu/Debian系统(ufw)
ufw deny 34567
ufw allow from 192.168.1.0/24 to any port 34567
ufw reload

2.3 SSH安全加固

2.3.1 修改SSH默认端口
# 编辑SSH配置文件
vi /etc/ssh/sshd_config

# 修改Port 22为自定义端口,如22888
Port 22888

# 重启SSH服务
systemctl restart sshd
2.3.2 禁用root密码登录,启用密钥登录
  1. 生成SSH密钥对(在本地电脑执行)
  2. 将公钥添加到服务器:~/.ssh/authorized_keys
  3. 修改SSH配置:
# 禁用密码登录
PasswordAuthentication no
# 禁用root密码登录
PermitRootLogin prohibit-password
# 启用密钥登录
PubkeyAuthentication yes

# 重启SSH服务
systemctl restart sshd

3. Web环境部署与网站管理

3.1 一键部署网站

图形化操作

  1. 进入面板 → 网站 → 添加站点
  2. 输入域名,选择PHP版本
  3. 自动创建数据库和FTP账号
  4. 上传网站代码到/www/wwwroot/域名目录

命令行操作(使用btcli)

# 启动btcli交互式工具
btcli

# 创建网站
1. 选择"网站管理"
2. 选择"创建网站"
3. 输入域名、PHP版本等信息

3.2 SSL证书配置

自动申请Let’s Encrypt证书

  1. 进入网站设置 → SSL
  2. 选择"Let’s Encrypt"
  3. 勾选域名,点击"申请"
  4. 开启"强制HTTPS"和"HTTP/2"

命令行续期证书

# 手动续期所有证书
/www/server/panel/pyenv/bin/python /www/server/panel/class/acme.py --renew-all

3.3 伪静态配置

WordPress伪静态

location / {
    if (-f $request_filename/index.html){
        rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
        rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
        rewrite (.*) /index.php;
    }
}

Laravel伪静态

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

4. 数据库深度管理

4.1 数据库基础操作

图形化操作

  1. 进入面板 → 数据库
  2. 可以创建、删除、备份、恢复数据库
  3. 使用phpMyAdmin管理数据库

命令行操作

# 登录MySQL
mysql -u root -p

# 创建数据库
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 创建用户并授权
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

# 导出数据库
mysqldump -u root -p dbname > dbname_backup.sql

# 导入数据库
mysql -u root -p dbname < dbname_backup.sql

4.2 MySQL性能分析

查看慢查询

# 开启慢查询日志
slow_query_log = ON
long_query_time = 1
slow_query_log_file = /www/server/data/mysql-slow.log

# 分析慢查询
mysqldumpslow /www/server/data/mysql-slow.log

查看当前运行的进程

SHOW PROCESSLIST;
-- 杀掉耗时过长的进程
KILL [进程ID];

5. 服务器运维与监控

5.1 系统监控

面板监控

  1. 进入面板 → 监控
  2. 查看CPU、内存、磁盘、网络使用情况
  3. 设置资源告警阈值

命令行监控

# 查看系统负载
top
htop

# 查看磁盘使用情况
df -h
du -sh /www/wwwroot/*

# 查看内存使用情况
free -h

# 查看网络连接
netstat -tulpn
ss -tulpn

5.2 计划任务

常用计划任务

  1. 数据库备份:每天凌晨3点
  2. 网站文件备份:每周日凌晨2点
  3. 日志切割:每天凌晨1点
  4. 系统更新:每周一凌晨4点

日志切割脚本

# 创建日志切割配置文件
vi /etc/logrotate.d/bt_nginx

# 添加以下内容
/www/wwwlogs/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 644 www www
    postrotate
        /etc/init.d/nginx reload
    endscript
}

6. 企业级安全实践

6.1 四层安全防护体系

层级 防护措施 效果
网络层 云服务商安全组 + 系统防火墙 阻断90%的扫描攻击
服务器层 SSH密钥登录 + Fail2ban 阻断9%的暴力破解
应用层 宝塔WAF + 防篡改 阻断0.9%的Web攻击
代码层 代码审计 + 最小权限 阻断剩余0.1%的攻击

6.2 Fail2ban安装与配置

# 安装Fail2ban
yum install fail2ban -y  # CentOS
apt install fail2ban -y  # Ubuntu/Debian

# 配置SSH防护
vi /etc/fail2ban/jail.d/sshd.conf

# 添加以下内容
[sshd]
enabled = true
port = 22888  # 你的SSH端口
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600  # 封禁1小时

# 启动Fail2ban
systemctl enable fail2ban
systemctl start fail2ban

6.3 网站防篡改

  1. 进入面板 → 软件商店 → 安装"网站防篡改"插件
  2. 开启需要保护的网站的防篡改功能
  3. 设置白名单目录(如缓存目录、上传目录)
  4. 配置告警方式(邮件、短信、微信)

6.4 最小权限原则

# 设置网站目录权限
chown -R www:www /www/wwwroot/域名
chmod -R 755 /www/wwwroot/域名

# 敏感文件设置只读权限
chmod 644 /www/wwwroot/域名/.env
chmod 644 /www/wwwroot/域名/config.php

# 禁止执行PHP的目录
location ~* ^/(uploads|cache)/.*\.(php|php5)$ {
    deny all;
}

7. 性能优化实战

7.1 Nginx性能优化

核心配置文件/www/server/nginx/conf/nginx.conf

# 设置与CPU核心数相同的工作进程数
worker_processes auto;

# 打开文件数限制
worker_rlimit_nofile 65535;

events {
    # 单个进程最大连接数
    worker_connections 10240;
    # 使用epoll模型
    use epoll;
    # 一次性接受多个连接
    multi_accept on;
}

http {
    # 开启高效文件传输模式
    sendfile on;
    # 减少网络报文段数量
    tcp_nopush on;
    tcp_nodelay on;
    
    # 客户端连接超时时间
    keepalive_timeout 60;
    
    # Gzip压缩
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/javascript application/json;
    
    # 静态文件缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }
}

7.2 PHP性能优化

核心配置文件/www/server/php/82/etc/php.ini

; 内存限制
memory_limit = 512M

; 最大执行时间
max_execution_time = 300

; 最大输入时间
max_input_time = 300

; 上传文件大小限制
upload_max_filesize = 100M
post_max_size = 100M

; 开启OPcache
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60

PHP-FPM配置/www/server/php/82/etc/php-fpm.conf

; 进程管理方式
pm = dynamic

; 最大子进程数
pm.max_children = 50

; 启动时的子进程数
pm.start_servers = 10

; 空闲时最小子进程数
pm.min_spare_servers = 5

; 空闲时最大子进程数
pm.max_spare_servers = 20

; 每个子进程处理多少请求后重启
pm.max_requests = 500

7.3 MySQL性能优化

核心配置文件/etc/my.cnf

[mysqld]
# 数据库字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# 最重要的缓存参数,设置为物理内存的60%-70%
innodb_buffer_pool_size = 4G

# 日志文件大小,设置为buffer pool的25%左右
innodb_log_file_size = 1G

# 事务提交方式(1=完全同步,2=高性能)
innodb_flush_log_at_trx_commit = 2

# 最大连接数
max_connections = 300

# 连接超时时间
wait_timeout = 60
interactive_timeout = 60

# 慢查询日志
slow_query_log = ON
long_query_time = 1
slow_query_log_file = /www/server/data/mysql-slow.log

8. 备份与灾备方案

8.1 3-2-1备份原则

  • 3份数据:原始数据 + 2份备份
  • 2种介质:本地磁盘 + 云存储
  • 1份异地:至少有一份备份在异地

8.2 自动备份配置

本地备份

  1. 进入面板 → 计划任务
  2. 添加"备份网站"任务,每天执行
  3. 添加"备份数据库"任务,每天执行
  4. 保留最近7天的备份

云存储备份

  1. 进入面板 → 软件商店 → 安装"腾讯云COS"或"阿里云OSS"插件
  2. 配置云存储API密钥
  3. 在计划任务中选择备份到云存储
  4. 保留最近30天的备份

8.3 全量冷备份脚本

#!/bin/bash
# 全量冷备份脚本

# 定义变量
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
WEB_DIR="/www/wwwroot"
MYSQL_USER="root"
MYSQL_PASSWORD="你的MySQL密码"

# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE

# 停止网站服务
systemctl stop nginx
systemctl stop php-fpm-82

# 备份网站文件
tar -zcvf $BACKUP_DIR/$DATE/web_files.tar.gz $WEB_DIR

# 备份所有数据库
mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD --all-databases > $BACKUP_DIR/$DATE/all_databases.sql

# 启动网站服务
systemctl start php-fpm-82
systemctl start nginx

# 压缩备份文件
tar -zcvf $BACKUP_DIR/full_backup_$DATE.tar.gz $BACKUP_DIR/$DATE
rm -rf $BACKUP_DIR/$DATE

# 删除7天前的备份
find $BACKUP_DIR -name "full_backup_*.tar.gz" -mtime +7 -delete

echo "全量备份完成:$BACKUP_DIR/full_backup_$DATE.tar.gz"

9. 高可用架构部署

9.1 负载均衡架构

架构图

用户 → DNS轮询 → 负载均衡器(主备) → Web服务器集群 → 数据库主从 → 缓存集群

Nginx负载均衡配置

upstream web_cluster {
    server 192.168.1.101:80 weight=1;
    server 192.168.1.102:80 weight=1;
    server 192.168.1.103:80 weight=1 backup;
}

server {
    listen 80;
    server_name yourdomain.com;
    
    location / {
        proxy_pass http://web_cluster;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

9.2 MySQL主从复制

  1. 主服务器配置:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=row
  1. 从服务器配置:
[mysqld]
server-id=2
relay-log=relay-bin
read_only=1
  1. 使用宝塔"MySQL主从复制"插件一键配置

9.3 Keepalived高可用

主服务器配置

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    
    virtual_ipaddress {
        192.168.1.100/24
    }
    
    vrrp_script chk_nginx {
        script "/usr/bin/pgrep nginx || exit 1"
        interval 2
    }
    
    track_script {
        chk_nginx
    }
}

备服务器配置

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    
    virtual_ipaddress {
        192.168.1.100/24
    }
    
    vrrp_script chk_nginx {
        script "/usr/bin/pgrep nginx || exit 1"
        interval 2
    }
    
    track_script {
        chk_nginx
    }
}

10. 常用命令行大全

10.1 面板管理命令(bt)

命令 功能
bt 显示命令菜单
bt 1 重启面板服务
bt 2 停止面板服务
bt 3 启动面板服务
bt 4 重载面板服务
bt 5 修改面板密码
bt 6 修改面板用户名
bt 7 修改MySQL root密码
bt 8 修改面板端口
bt 9 清除面板缓存
bt 10 清除面板登录限制
bt 13 查看面板默认信息
bt 14 查看面板登录信息
bt 16 修复面板
bt 17 更新面板

10.2 服务管理命令

# Nginx管理
service nginx start
service nginx stop
service nginx restart
service nginx reload
service nginx status

# MySQL管理
service mysql start
service mysql stop
service mysql restart
service mysql status

# PHP管理(以PHP 8.2为例)
service php-fpm-82 start
service php-fpm-82 stop
service php-fpm-82 restart
service php-fpm-82 status

# Redis管理
service redis start
service redis stop
service redis restart
service redis status

10.3 网站与数据库管理命令

# 查看网站列表
ls /www/wwwroot

# 查看网站日志
tail -f /www/wwwlogs/域名.log
tail -f /www/wwwlogs/域名.error.log

# 备份数据库
mysqldump -u root -p 数据库名 > 备份文件名.sql

# 导入数据库
mysql -u root -p 数据库名 < 备份文件名.sql

10.4 系统维护命令

# 清理系统垃圾
bt 15

# 清理面板缓存
bt 9

# 检查磁盘空间
df -h

# 检查内存使用
free -h

# 查看系统负载
top
htop

# 查看网络连接
netstat -tulpn

11. 常见问题与故障排除

11.1 面板无法访问

排查步骤

  1. 检查服务器是否能ping通
  2. 检查面板端口是否在防火墙和安全组中放行
  3. 检查面板服务是否运行:bt status
  4. 重启面板服务:bt 1
  5. 查看面板错误日志:bt 22

11.2 网站502错误

常见原因

  • PHP-FPM服务未启动
  • PHP配置错误
  • 网站代码错误

解决方案

# 检查PHP-FPM状态
service php-fpm-82 status

# 重启PHP-FPM
service php-fpm-82 restart

# 查看PHP错误日志
tail -f /www/server/php/82/var/log/php-fpm.log
tail -f /www/wwwlogs/域名.error.log

11.3 数据库连接失败

常见原因

  • MySQL服务未启动
  • 数据库用户名或密码错误
  • 数据库权限问题

解决方案

# 检查MySQL状态
service mysql status

# 重启MySQL
service mysql restart

# 重置MySQL root密码
bt 7

# 查看MySQL错误日志
tail -f /www/server/data/$(hostname).err

11.4 磁盘空间不足

排查步骤

# 查看磁盘使用情况
df -h

# 查看大文件
find / -type f -size +100M

# 清理日志文件
rm -rf /www/wwwlogs/*.log
rm -rf /www/server/data/*.log

# 清理系统垃圾
bt 15
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐