آرٽيڪل ڊاريڪٽري
前两天,我的WordPress网站在升级程序的时候,突然宕机了。
打开后台一片空白,前端直接报500错误,日志里全是PHP fatal error。
当时我脑子里就一个念头,完了,核心文件坏了。
说实话,遇到这种事,大部分人的第一反应是慌。尤其是那种博客写了好几年、装了十几个插件、主题也深度定制过的站,你会想,这要是重装一遍,我那些东西还在不在?
我跟你说,别慌。只要你还能SSH登上去,这事儿五分钟就能解决。
WordPress核心文件损坏的原因
先说一下背景,WordPress的升级机制其实挺脆弱的,它在线升级的时候会把核心文件逐个替换,这个过程中如果权限不对、磁盘满了、或者进程被中断,文件就会错乱。错乱的结果就是,你的站点直接挂掉,前端后端都进不去。
但这里有个非常关键的认知,WordPress的核心文件和你的内容是完全分离的。你的主题、插件、上传的图片,全都在wp-content目录下,配置信息在wp-config.php里。而核心文件,就是wp-admin、wp-includes这些文件夹,它们本质上就是一套PHP程序而已。
所以,用SSH替换核心文件这件事,其实就是在做一件事,把坏掉的程序重新放一份新的进去。就像你家电脑蓝屏了,你重装个系统,D盘的东西还在不在?一样的道理。

SSH替换WordPress核心文件完整步骤
故事是这样的,我当时SSH登上去,进了站点目录,第一件事就是确认一下当前的状态。
cd /var/www/html # 根据你的实际路径然后,下载最新版WordPress。
wget https://wordpress.org/latest.tar.gz
tar -xf latest.tar.gz这一步就是把最新版的WordPress压缩包拉下来,然后解压。你会看到当前目录下多了一个wordpress文件夹。
接下来是最关键的一步,覆盖核心文件。
cp -rf wordpress/* .这行命令的意思是,把wordpress文件夹里的所有东西,强制复制到当前目录。
这里你需要理解一件事,这个操作不会删除你的wp-content和wp-config.php。因为wordpress文件夹里本身就没有这两个东西,它们是你的站点独有的。所以这一步是安全的,它只会覆盖那些核心程序文件。
我当时执行完这行命令之后,心里还是有点忐忑的。万一覆盖错了呢?
然后我就去清理安装包。
rm -rf wordpress latest.tar.gz干净利落,不留痕迹。
做完这些之后,你需要登录后台,执行数据库升级。路径是/wp-admin/upgrade.php。因为新版本的WordPress可能会更新数据库结构,这一步不能省。
说实话,整个过程加起来不到五分钟。我当时就想,如果是在后台点升级按钮,鬼知道要等多久,还可能再挂一次。
操作前必做的备份工作
但我得提醒你,先备份。至少备份你的wp-config.php和数据库。这个习惯一定要养成,不管你觉得操作多安全。我自己是经历过数据丢失的人,那种痛,一次就够了。
SSH替换后目录权限修复方法
还有一件事,做完替换之后,你可能会遇到一个新问题,目录权限。
我替换完之后,去后台想装个插件,结果报错,因为我们不能复制一些文件,升级未被安装。
这是什么意思呢?就是你SSH上去替换文件的时候,文件的所有者可能变成了root或者其他用户,而你的Web服务器,比如Apache用的是www-data用户,它没有写入权限,所以WordPress的后台升级机制就报错了。
解决办法也不复杂。
cd /home/你的用户名/web/你的域名文件夹/public_html/wp-content/
chmod -R 755 plugins/
chmod -R 755 themes/
chmod -R 755 uploads/
chmod -R 755 upgrade/给这些目录设置755权限,意思就是只有拥有者有权写入,其他人只能读。
جيڪڏهن توهان استعمال ڪري رهيا آهيوHestiaCP这种面板,还有更简单的方式。
chown -R 你的用户名:你的用户名 /home/你的用户名/web/你的域名文件夹/public_html/*一句话搞定。
回到权限这块,如果你的站点文件权限整体都不对,可以用find命令批量修改。
find /home/你的用户名/web/你的域名文件夹/public_html -type d -print0 | xargs -0 chmod 755
find /home/你的用户名/web/你的域名文件夹/public_html -type f -print0 | xargs -0 chmod 644目录给755,文件给644,这是لينڪس环境下Web服务的标准权限配置。
用WP-CLI批量更新插件和主题
另外,如果你习惯用WP-CLI,还可以顺便批量更新一下插件和主题。
wp plugin update --all
wp theme update --all说实话,我自己也还在摸索更好的自动化方案,比如能不能写个脚本,一键完成备份、替换、改权限、升级数据库这一整套流程。理论上是可以的,但我还没完全跑通,就不在这里瞎说了。
回到最开始那个宕机的站,做完这些之后,刷新了一下页面,好了。前端正常加载,后台也能正常登录,主题和插件一个都没丢。
怎么说呢,这种感觉就是,你花五分钟用SSH操作,省掉了可能一整天的折腾。
我觉得很多站长可能都有类似的焦虑,就是一碰到WordPress升级出问题就慌,觉得是不是要重装一切。其实你只要理解了WordPress的文件结构,核心文件就是个程序包,替换一下就完了。真正属于你的东西,都在wp-content里。
最后再啰嗦一句,养成定期备份的习惯。不管你是用插件自动备份,还是SSH手动备份,都行。就是别等出事了才想起来备份这回事。
毕竟,数据没了就是没了,程序坏了可以换。
جيئن ته توهان هن وقت تائين پڙهيو آهي، جيڪڏهن توهان کي اهو مددگار لڳو، مهرباني ڪري ان کي پسند ڪريو ۽ شيئر ڪريو. جيڪڏهن توهان پهرين اپڊيٽ حاصل ڪرڻ چاهيو ٿا، ته توهان مون کي فالو پڻ ڪري سگهو ٿا!
منهنجو مضمون پڙهڻ لاءِ مهرباني. ايندڙ ڀيري ملنداسين.
اميد چن ويلانگ بلاگ ( https://www.chenweiliang.com/ ) 分享的《用 SSH 彻底替换 WordPress 核心文件(比 FTP 快10倍)》,对您有帮助。
هن آرٽيڪل جي لنڪ کي حصيداري ڪرڻ لاء ڀليڪار:https://www.chenweiliang.com/cwl-34329.html
