问:端口放行到底怎么设置?我安全组、防火墙都试了,还是不行,快疯了。
答:别急,端口放行是新手最容易踩的坑,其实就两步,第一步,你服务器商那儿(阿里云、腾讯云这种)的控制台里,找到“安全组”或“防火墙”规则,把你要放行的端口加进去,比如80、443、8888(宝塔面板默认端口)、21(FTP)、3306(数据库),有的服务器商还分内网和外网,记得外网也要放行,第二步,登录宝塔面板,左侧菜单“安全”里,有个“系统防火墙”,检查对应端口是否放行,如果显示“未放行”,点一下“放行”就行,云服务器商的安全组和宝塔的系统防火墙是两套体系,两边都要放行才管用。
宝塔面板从入门到实战,运维发布常见问题全解析
问:网站突然打不开了,页面显示“无法访问”,但我啥都没改啊,怎么排查?
答:啥都没改最怕了,但别慌,按顺序来,第一,先看宝塔面板首页,CPU和内存是不是爆了?如果跑了100%,大概率是进程卡死,直接在“监控”里看是哪个进程,然后重启一下PHP或Nginx服务,第二,如果资源正常,点“网站”菜单,看你的网站对应的“运行状态”是不是显示“运行中”,如果显示“已停止”,点“启动”按钮,第三,如果状态正常,试试点右侧“设置” -> “配置文件”,看有没有语法错误,或者最近有没有改过伪静态规则,去“日志”里看错误日志,百度搜一下错误码,基本能定位,80%的新手问题出在前两步。
问:FTP连不上,提示“连接被拒绝”,我用宝塔创建的FTP账号,密码肯定没错,怎么办?
答:现在宝塔默认推荐用SFTP(SSH协议),普通FTP(21端口)容易被服务器商封禁,你优先试试用SFTP连接,软件用WinSCP或Xftp,协议选“SFTP”,端口填22(或者你改过的SSH端口),账号密码还是你那个FTP账号,如果一定要用FTP,检查两件事:第一,宝塔“软件商店”里Pure-Ftpd是否已安装并启动;第二,你的FTP账号目录权限是否为“www”用户所有,去“安全”菜单里确认21端口已经放行,还有个小细节:终端用netstat -tlnp | grep 21看FTP服务是否监听,没监听就是组件崩了,卸载重装Pure-Ftpd最快。
问:我网站改坏了,想恢复昨天的数据,宝塔怎么备份?是不是要整台服务器快照?
答:不用搞那么复杂,宝塔自带备份功能,在“网站”菜单,点你网站右侧的“备份”按钮,可以手动一键备份(包括文件+数据库),备份文件默认存在/www/backup目录下,你也可以改到云存储(如阿里云OSS,腾讯云COS),防止服务器硬盘挂了全丢,恢复的时候,同样在“备份”列表里选一个点“恢复”,秒级还原,除了手动备份,建议你设置计划任务——在“计划任务”里新建一个“备份网站”任务,选择每天凌晨2点自动备份,保留最近3份即可,这样就算你改坏了,也能轻松回滚,备份是运维的命,别偷懒。
问:我在宝塔上发布新版本代码,用Git还是直接上传?怎么最不容易出错?
答:新手别用Git,直接在“文件”菜单里找到网站根目录(一般是/www/wwwroot/你的域名),把新文件压缩包上传,然后右键解压,覆盖旧的,注意覆盖前,先备份一下原来的config目录和.env文件(如果有的话),因为里面是数据库连接密码等配置,被覆盖了就麻烦了,解压完成后,去“网站”设置里清一下缓存(如果有CDN,也要刷新CDN),更稳妥的做法:先在本地测试没问题了,再用“宝塔终端”执行cp -rf命令把文件从临时目录复制过去,但新手不建议用命令行,记住一点:发布前永远先备份,发布后立刻检查首页和后台登录,确认无误再走人。
问:数据库经常连不上,是不是要改数据库端口?改了会不会更安全?
答:数据库端口默认3306,但很多攻击者专门扫这个端口,你可以改成别的端口(比如3307),在宝塔“数据库”菜单里,找到你的数据库,点“修改端口”,然后去服务器安全组和宝塔防火墙放行新端口,改完记得在网站配置文件的数据库连接代码里,把localhost:3306改成localhost:3307,不过说实话,小网站改端口意义不大,因为漏洞更多在应用层,不在端口,真正保护数据库的办法是:数据库密码至少16位复杂密码,并且只允许本机访问(绑定0.0.1),不要开放外网连接,如果你必须远程连接,建议用“宝塔安全”里的“SSH管理” -> “高级设置” -> “隧道”功能,或者用VPN,别裸奔。
问:我用了宝塔的反向代理,但是网站加载特别慢,怎么优化?
答:反向代理慢,多半是缓存没开,你进“网站” -> 你的域名 -> “反向代理”,把“缓存”选项打开,模式选“缓存模式”,缓存时长设个5分钟,这样静态资源(图片、CSS、JS)就不会每次都回源了,还有一个是“自动更新缓存”,建议关掉,不然每次请求都穿透到源站,如果还慢,检查源站是否有限流或禁Ping,开启“Gzip压缩”和“HTTP/2”,在“配置文件”里加上gzip on; gzip_comp_level 5;,以及listen 443 ssl http2;(针对HTTPS站点),最后一招:把反向代理的目标地址改成内网IP,不要用公网域名,能省不少DNS解析时间。
问:我绑定了多个域名到同一个网站,但访问第二个域名时跳转到第一个域名,怎么搞?
答:这是典型的默认站点问题,宝塔里如果你有多个域名,系统默认第一个添加的域名是主域名,访问其它域名时会301跳转到主域名,你要去“网站” -> “设置” -> “域名管理”里,把所有域名都挂上去,并确保你要的那个主域名排在最上面,如果不想跳转,只想让每个域名独立访问,那说明你应该建多个网站站点,而不是共用一个根目录,检查一下配置文件里有没有rewrite规则强制跳转到主域名,有的话删掉那段if ($host != 'xxx.com') { return 301 ...; }代码,就好了。
问:我在宝塔上部署了SSL证书,但手机浏览器还是提示不安全,什么情况?
答:提示不安全,大概率是“证书链”不完整,你点“网站” -> “设置” -> “SSL”,看下证书内容框里,是否只粘贴了域名证书(比如cert.pem),漏掉了中间证书(chain.pem),宝塔有“一键申请SSL”功能,用Let's Encrypt免费证书的话,一般不会出这个问题,如果你是粘贴的第三方证书,需要把域名证书和中间证书合并到一个文件里,顺序是“域名证书放上面,中间证书放下面”,再粘贴进去,还有个小坑:如果网站开了CDN,CDN上的SSL证书也要重新上传一份,否则用户访问的是CDN节点,节点证书失效就会报错,用手机浏览器强制刷新(清除缓存)再试一次。
问:我用宝塔的“终端”执行命令,提示没有权限,或者找不到命令,怎么破?
答:终端默认登录的是root用户才对,如果你是用普通用户(比如www或python),就会权限不足,你看终端左上角,显示的是root@xxx吗?不是的话,输入sudo -i然后回车,再输入服务器root密码(跟宝塔面板登录密码不一定相同,是SSH密码),如果提示command not found,说明你的PATH环境变量没写对,或者命令没安装,比如想用vim,但系统没装,就先用apt install vim(Debian/Ubuntu)或者yum install vim(CentOS),新手用终端,记住一句话:只用宝塔界面能搞定的事情,绝不用命令行,如果非要用,先在宝塔“软件商店”里安装好“Linux工具箱”,里面有常用命令的图形化界面,比如改文件权限、防火墙规则,比命令行安全多了。
问:宝塔面板自己卡死了,网页打不开,SSH也慢,怎么自救?
答:如果是服务器负载过高导致面板卡死,你先用SSH连上去(如果还能连),执行bt命令,会出来一个宝塔操作菜单,选择“停止面板服务”,重启面板服务”,如果连SSH都进不去,只能去服务器商网页控制台,强制重启VPS(虚拟服务器),重启后一般就好了,为了防止下次再卡死,建议限制PHP进程数:在“软件商店” -> PHP设置 -> “性能调整”里,把“并发连接数”调到50左右,并开启FPM的慢日志,看看哪个脚本拖垮了CPU,还有,定期清理宝塔的/www/wwwlogs/下的访问日志,日志文件太大也会占满磁盘,磁盘满是最常见原因,用df -h命令一看便知。
问:我想把宝塔面板从一个服务器迁到另一个服务器,最省事的办法是什么?
答:别自己折腾,用宝塔自带“迁移”功能,在旧面板的“安全”菜单里,开启“SSH服务”,记下IP、root密码、SSH端口,然后到新面板的“网站” -> 右上角“导入网站”,选择“从服务器导入”,填旧服务器信息,它会自动拉取所有网站文件、数据库、定时任务和SSL证书,迁移完成后,去服务器商那边把域名解析改成新IP,等生效即可,注意:新面板的版本必须和旧面板一样(或者更高),否则可能迁移失败,如果你要迁移的是整个服务器(包括面板设置、计划任务),用“面板” -> “设置” -> “备份” -> “导出数据”,把备份文件下载到本地,再上传到新服务器,执行bt命令里的“导入”选项,这个方法适合跨服务商迁移,但要求你有命令行基础。
宝塔面板说到底就是一个带网页界面的“服务器遥控器”,你熟悉了上面这些场景,90%的日常运维发布问题都能自己解决,剩下的10%,多看看日志文件,多搜索一下报错代码,你会发现,很多坑前辈们早就踩过了。大问题都是从小问题积累的,备份、备份、再备份,运维才能睡安稳觉。



发表评论