服务公告

服务公告 > 综合新闻 > 宝塔面板:宝塔面板基础操作

宝塔面板:宝塔面板基础操作

发布时间:2026-04-21 12:01

一、前言

搞过的人都知道,刚接手一台装了宝塔面板的服务器,最烦的是啥?找不着北。站点跑在哪、数据库密码多少、SSL证书怎么续期,这些破事儿每次都得翻半天后台。本文解决的就是这个——让你5分钟内摸清一台陌生服务器的宝塔面板,把基础操作套路摸透,不求人。

二、操作步骤

第1步:确认宝塔面板服务状态

拿到机器SSH先别急着进Web后台,用命令行确认面板还在跑。有时候客户环境不稳定,Panel服务挂了你还进后台那不是白等。

systemctl status bt

预期输出:

● bt.service - BT-Panel Loaded: loaded (/www/server/panel/init.sh; enabled) Active: active (running) since Mon 2024xx xx:xx:xx CST; 3 days online Main PID: 1234 (python) CGroup: /system.slice/bt.service └─1234 /www/server/panel/pyenv/bin/python -u /www/server/panel/task.py

看到Active: active (running)就对了,服务正常运行。如果显示failed或者crashed,先重启服务:

systemctl restart bt

第2步:获取或重置面板登录信息

交接过来的服务器,八成没人告诉你面板密码。这时候SSH进去跑命令直接拿,或者直接重置。

/www/server/panel/tools.py panel YOUR_NEW_PASSWORD

预期输出:

bt-search stop... bt-task stop... bt-nginx stop... bt-php stop... bt-mysql stop... panel password: ************* Congratulations! Password reset successfully!

如果忘了username,跑这个:

bt default

预期输出:

================================================================== _Bt-Panel defaults information_========================== Bt-Panel-URL: http://服务器IP:8888/abc123def456 username: xxxxxxxx password: ************* path: /www/server/panel/data/ ==================================================================

把URL和账号密码记下来,第一次登录建议改掉默认路径。

第3步:确认LNMP/AMP环境状态

宝塔的优势就是可视化搞定环境,但后台显示的和命令行实际跑的未必一致。上机器跑一遍,心里有数。

/www/server/panel/tools.py task_bar_list

或者直接看Nginx/MySQL/PHP进程:

ps aux | grep -E 'nginx|mysql|php-fpm' | grep -v grep

预期输出:

root 1234 0.0 0.1 nginx: worker process mysql 2345 0.1 mysqld --user=mysql --pid-file=... php-fpm 3456 0.2 php-fpm: pool www

如果哪个没起来,去后台"软件商店"里点重启,别在命令行手动起——宝塔的systemd服务有它的管理逻辑。

第4步:定位站点配置文件

这是实战里最常干的事:客户说"网站打不开了帮我看看"。第一件事就是找到这个站点的nginx配置和网站目录。

nginx -t && nginx -T | grep -A 5 'server_name'

或者直接去宝塔的站点配置目录找:

# CentOS/RHEL路径 ls /www/server/panel/vhost/nginx/ # Ubuntu路径(其实宝塔安装后路径统一,但保险起见) ls /www/server/panel/vhost/nginx/

预期输出:

www.example.com.conf default.conf shop.test.com.conf

直接cat对应配置文件,server_name、root目录、SSL配置一目了然:

cat /www/server/panel/vhost/nginx/www.example.com.conf

预期输出:

server { listen 80; server_name www.example.com; root /www/wwwroot/example_com; index index.php index.html; location ~ \.php$ { proxy_pass http://127.0.0.1:8080; } }

第5步:查看网站目录和权限

站点配置找到了root目录,进去看文件结构。很多迁移过来的站点出问题,根源就是权限不对。

ls -la /www/wwwroot/example_com/ du -sh /www/wwwroot/example_com/

预期输出:

total 4.0K drwxr-xr-x 6 www www 4.0K Jan 15 10:30 . drwxr-xr-x 6 www www 4.0K Jan 15 Jan 15 10:30 .. drwxr-xr-x 3 www www 4.0K Jan 15 10:30 wp-content -rw-r--r-- 2 www www 4.0K Jan 15 10:30 .user.ini -rw-r--r-- 1 www www 4.0K Jan 15 10:30 index.php -rw-r--r-- 1 www www 4.0K Jan 15 10:30 wp-config.php drwxr-xr-x 5 www www 4.0K Jan 15 10:30 wp-admin

宝塔默认网站目录owner是www用户,网站跑在www用户下。如果你的站点是root创建的,PHP-FPM没权限读文件,就会报500。最快的解法:

chown -R www:www /www/wwwroot/example_com/ find /www/wwwroot/example_com/ -type d -exec chmod 755 {} \; find /www/wwwroot/example_com/ -type f -exec chmod 644 {} \;

第6步:数据库连接排查

网站打不开第二步看数据库。宝塔的MySQL默认跑在本地socket或者127.0.0.1:3306。

# 看数据库进程 ps aux | grep mysql | grep -v grep # 检查MySQL状态 systemctl status mysqld # CentOS/RHEL # systemctl status mysql # Ubuntu

预期输出:

● mysqld.service - MySQL Community Server Loaded: loaded (/etc/systemd/system/mysqld.service; enabled; vendor preset: enabled) Active: active (running)

如果MySQL正常但网站连不上,大概率是wp-config.php或者程序配置文件里的数据库密码错了。去宝塔后台"数据库"页面找密码,或者命令行查:

cat /www/server/panel/config/iplist.txt 2>/dev/null || echo "No ip whitelist" # 看MySQL root密码 cat /www/server/panel/default.pl

如果想改程序连接的数据库密码,先在宝塔后台改好,然后把新密码同步到网站配置文件里。

第7步:防火墙和端口检查(⚠️ 危险操作说明)

刚装好的服务器面板进不去,最常见的原因:8888端口没开。宝塔装完会自动放行它配置的端口,但如果服务器还有云厂商的安全组拦着,你SSH进去改iptables也没用。

# 看当前监听的端口 ss -tlnp | grep -E '8888|80|443' # 看防火墙规则(如果装了firewalld) firewall-cmd --list-all

预期输出:

LISTEN 0 128 *:8888 *:* users:(("python",pid=1234,fd=3)) LISTEN 0 128 *:80 *:* users:(("nginx",pid=5678,fd=3)) LISTEN 0 128 *:443 *:* users:(("nginx",pid=5678,fd=3))

端口在监听,但云厂商安全组没开——这个SSH里改不了,去云控制台开放。宝塔自己的防火墙设置在"面板设置"→"面板防火墙"里操作。

⚠️ 警告:不要执行iptables -F清空规则,这会把服务器SSH连接规则也清掉导致无法连接。如果要用iptables做规则,先用iptables-save备份,用iptables -I把规则插到最前面保证SSH可连。

第8步:快速登录Web面板完成基础配置

命令行确认完毕,进Web面板做几个基础设置。这些设置命令行能改,但面板里操作更直观。

路径:面板设置 → 基本设置

  • 修改面板端口(默认8888,改掉防扫描)
  • 绑定IP(如果只从固定IP访问,绑定上安全一些)
  • 开启BasicAuth(给面板再加一层密码)
  • 关闭"密码密码错误过多自动拉黑IP"的功能(有些自动化脚本会触发这个机制)

路径:面板设置 → 面板域名

  • 绑定域名后只能从该域名访问面板,增强安全

改完记得重启面板服务使配置生效:

bt reload

三、常见问题FAQ

Q1:宝塔面板进不去了,SSH能连但Web打不开怎么办?

A:命令行先确认面板进程还在跑:ps aux | grep panel。进程没了就bt start启动。进程在但端口不通,先查防火墙:firewall-cmd --list-ports,确认8888在允许列表里。如果云服务器,先去云控制台看安全组规则有没有开8888tcp。还有个骚操作——直接用bt命令重置面板配置:bt会给你个交互式菜单,选16恢复面板默认配置。

Q2:服务器迁移后,原来在宝塔里创建的站点怎么快速恢复?

A:两种情况。第一种是完整迁移:把/www/server/panel/vhost目录和/www/wwwroot目录打包拷走,新机器装好宝塔后直接导入配置。第二种是只知道域名/目录:去新机器面板里新建站点,配置里有个"根目录"选你刚才同步过来的/www/wwwroot/你的站点目录,然后去"网站"→找到你的站点→"配置文件"对照原来的nginx配置改好。别忘了迁移数据库:旧机器mysqldump导出,mysql -u root -pYOUR_PASSWORD < backup.sql导入新机器。

Q3:宝塔自带的SSL证书申请失败了,怎么手动续期?

A:Let's Encrypt验证失败八成是域名解析没生效或者防火墙拦了80端口。先手动确认:curl http://你的域名/.well-known/acme-challenge/test能通才能申请。最稳的做法是去Let's Encrypt申请用DNS验证的证书,拿到证书文件后去宝塔"网站"→你的站点→"SSL"→"其他证书",把fullchain.pem和privkey.pem内容粘贴进去。命令行方式:certbot certonly --manual --preferred-challenges dns -d 你的域名 -d *.你的域名按提示在DNS里加 TXT 记录验证。证书申请下来后复制到网站配置里,然后nginx -t && nginx -s reload

Q4:多个网站共用一个PHP版本,怎么单独给某个站点切PHP版本?

A:宝塔默认是全局PHP版本,但支持每个站点单独配置。进"网站"→点击目标站点→"设置"→"基本设置"→"PHP版本",下拉选你想切换的版本然后保存。如果列表里没有你需要的版本,先去"软件商店"→"PHP"安装对应版本。改完PHP版本后最好点一次"重载PHP"或者重启对应的php-fpm进程,否则可能还在用旧版本的socket。

四、总结

宝塔面板这东西,用好了是真省事,用不好就是个黑盒子。出问题别慌,按这个套路来:先命令行确认服务状态 → 再进面板看配置 → 找不到配置去对应目录翻配置文件 → 权限和数据库是排查重点。核心就三件事:站点在哪、数据库通不通、防火墙放行没有。

延伸阅读:

  • 宝塔官方文档的"常见问题"章节,虽然写得一般但能查命令路径
  • Nginx location匹配规则文档——理解rewrite规则是搞宝塔站点配置的前提
  • 云厂商安全组配置文档(阿里云/腾讯云/AWS各有差异)——很多莫名其妙的问题根源在这

记住一点:能命令行搞定的别依赖Web后台。Web后台是给人看的,命令行才是真实状态。

上一篇: SVN:分支管理

下一篇: Photoshop:自动化