php源码cms

上周帮一个做外贸的朋友处理他的企业站,后台登录进去一看,页面底部赫然写着"Powered by DedeCMS V5.7"。这玩意儿他用了快八年,中间换过三次服务器,PHP版本从5.3一路升到7.4,居然还能跑。我问他为什么不换个新系统,他说:"能发文章能传产品图,客户能在线留言,够了。"

这就是PHP源码CMS的真实处境——不酷,但死不了。

那些年我们装过的CMS

2008年前后,国内做站的人手里都攥着几个压缩包。DedeCMS、PHPCMS、帝国CMS、织梦、Discuz,下下来解压到htdocs目录,改一下config.php里的数据库账号密码,浏览器敲install,下一步下一步,五分钟一个站就起来了。那时候会改个模板标签就能接单赚钱,{ dede:arclist}这种语法现在看着土,当年可是生产力工具。

PHPCMS后来停了,官方论坛最后一条公告停在2019年。帝国CMS还在更新,但界面风格停留在XP时代。DedeCMS被曝光过几次后门,安全圈的人提起它就摇头。可你去站长工具上随便查,DedeCMS搭建的站点数量依然排在前三。为什么?因为那些站根本没人维护,也不打算维护了。

开源CMS的代码长什么样

扒过几个主流PHP CMS的源码,说句得罪人的话:大部分代码质量放在今天是不及格的。全局变量满天飞,SQL语句直接拼接,模板引擎自己写一套,缓存机制简单粗暴。PHPCMS的modules目录里,一个功能模块动辄几千行,函数命名混着拼音和英文缩写,注释比代码还少。

但你要说它不能用,那也不对。这些系统经过十几年、几十万站点的实际运行,踩过的坑比新框架多得多。某个字段长度设成255还是500,表单提交要不要做token验证,附件目录怎么分文件夹存储——这些细节都是在真实攻击和真实故障里磨出来的。新出的CMS框架代码写得再优雅,没经过这种量级的实战,稳定性真不好说。

为什么还有人用

去年有个客户找我做站,预算三千。我推荐用WordPress,他说服务器是Windows的,PHP版本5.6,数据库是SQL Server。我沉默了两秒,说那就DedeCMS吧。不是我想用,是环境逼的。

很多老牌虚拟主机商的控制面板里,一键安装列表还挂着这些CMS。你买空间的时候,客服会问你:"要装织梦还是帝国?"这种生态惯性比技术优劣更有决定性。再加上大量现成的模板站、插件、采集规则,换系统的迁移成本远高于忍受它的缺点。

还有个现实问题:会改DedeCMS模板的人,比会写Laravel的人便宜得多。小城市建站公司招人,要求里写"熟悉DedeCMS二次开发",月薪四千能招到熟手。你写"精通Laravel",人家连简历都不投。

安全是个躲不开的坑

DedeCMS的历史漏洞多到能出本书。任意文件上传、SQL注入、后台XSS,CVE编号一抓一把。我见过最离谱的一个站,data目录直接暴露在公网,backup文件夹里躺着整站数据库的.sql文件。问站长,他说"不知道啊,装完就这样"。

用这些老CMS,安全基本靠三件事:改后台路径、删掉install目录、装个安全狗。听起来很业余,但这就是大多数站长的真实操作。你让他去读代码审计报告,他连php.ini在哪都不知道。

PHP源码CMS不会消失。它就像城乡结合部的五金店,门脸破旧,货架杂乱,但你要找个特定型号的螺丝,还真得去那儿。新项目我肯定推荐Laravel、ThinkPHP或者直接上Headless方案。但遇到那些跑着老系统的服务器,我的态度是:能不动就不动,实在要动,先备份。