一、优化前必做2项准备
1.1 备份核心数据
直接登录帝国CMS后台→系统设置→备份数据→数据库备份,选择“备份全部表”“压缩备份包”,点击开始备份,等待进度条走完后下载备份文件到本地。
1.2 检查PHP版本与帝国CMS兼容性
帝国CMS7.5建议用PHP7.2-7.4,7.2以下会有安全/性能问题;登录后台查看版本路径:后台首页右下角,PHP版本可在系统→系统设置→系统信息或服务器面板(如宝塔:软件商店→PHP设置→版本选择)确认。
二、后台核心代码优化(无需改数据库,零风险)
2.1 关闭后台无用的侧边栏实时统计
后台默认显示用户数、文档数等实时统计,每次加载都查数据库拖慢速度,步骤如下:
- 打开网站根目录下的e/class/connect.php文件,找到第472行左右(不同版本可能偏移5-10行,直接搜索代码段)
```php
//后台统计
function EcmsCheckBackAdminStat(){
global $empire,$dbtbpre;
$r=$empire->fetch1("select count() as total from {$dbtbpre}enewsuser where userid<>0");
$totaluser=$r['total'];
$r=$empire->fetch1("select count() as total from {$dbtbpre}ecms_news where id<>0");
$totalnews=$r['total'];
$r=$empire->fetch1("select count() as total from {$dbtbpre}enewstempclass where classid<>0");
$totaltemp=$r['total'];
$r=$empire->fetch1("select count() as total from {$dbtbpre}enewspl where plid<>0");
$totalpl=$r['total'];
$r=$empire->fetch1("select count() as total from {$dbtbpre}enewsfeedback where id<>0");
$totalfb=$r['total'];
echo '
注册会员:'.$totaluser.'';
echo '
新闻总数:'.$totalnews.'';
echo '
模板总数:'.$totaltemp.'';
echo '
评论总数:'.$totalpl.'';
echo '
留言总数:'.$totalfb.'';
}
```
- 将这段代码整个注释掉(在开头加/,结尾加/),或者直接删除,保存后上传覆盖原文件
2.2 关闭后台“常用操作栏”冗余功能
常用操作栏默认加载多个频道、栏目链接,小网站可以简化,步骤:
- 打开e/admin/menu/top.php,找到第37行左右的代码段(搜索EcmsAdminMenuTop),删除或注释掉不需要的频道调用、更多操作等,比如保留“发布新闻”“管理新闻”“系统设置”3个核心项即可
三、数据库层面优化(见效最快)
3.1 修复并优化帝国CMS核心表
- 登录帝国CMS后台→系统设置→备份数据→优化数据表
- 全选所有以enews开头的后台系统表,点击开始优化;优化完成后点击修复数据表,同样全选enews开头的表,点击开始修复
3.2 删除后台无效数据缓存

后台长时间运行会产生大量临时缓存,步骤:
- 登录后台→数据更新中心→清理临时文件与缓存
- 全选所有清理选项(临时目录文件、后台数据缓存、前台静态缓存(若不需要前台可留,但后台优化建议清)),点击开始清理
3.3 手动清理过期日志与草稿
帝国CMS后台默认不自动删除操作日志、未发布草稿,日积月累拖慢:
- 清理操作日志:后台→其他管理→操作日志→管理操作日志,选择“删除30天前的日志”或“全选删除”(小网站可全选,大网站建议30天)
- 清理未发布草稿:后台→信息管理→管理信息→选择对应模型→点击搜索条件→选择“未发布”→全选删除
四、服务器配置层面优化(宝塔面板直接操作)
4.1 开启PHP OPcache缓存
OPcache会把PHP脚本编译后的字节码缓存到内存,无需每次重新解析:
- 打开宝塔面板→软件商店→找到对应PHP版本→设置→性能调整
- 找到OPcache选项,点击开启,配置参数如下(可直接复制):
```ini
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
```
4.2 调整PHP运行内存限制
帝国CMS后台操作(如批量生成静态、大数据备份)需要足够内存,步骤:
- 同样在宝塔PHP设置→性能调整中,找到memory_limit,修改为256M(小内存服务器可设128M,最低不能低于64M)
- 保存并重载配置
4.3 开启后台目录的Nginx/Apache静态缓存
后台的CSS、JS、图片文件不需要每次从服务器读取,直接缓存到浏览器:
- 如果是宝塔Nginx:打开网站→设置→配置文件,在server块内添加以下代码:
```nginx
location ~ /e/admin/.\.(gif|jpg|jpeg|png|css|js|ico|svg)$ {
expires 7d;
add_header Cache-Control "public, immutable";
}
```
- 如果是宝塔Apache:打开网站→设置→伪静态,添加以下代码:
```apache
ExpiresActive On
ExpiresByType image/gif "access plus 7 days"
ExpiresByType image/jpeg "access plus 7 days"
ExpiresByType image/png "access plus 7 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
ExpiresByType image/x-icon "access plus 7 days"
ExpiresByType image/svg+xml "access plus 7 days"
Header set Cache-Control "public, immutable"
```
五、额外小优化
- 更换后台登录后的默认页面:打开e/config/config.php,搜索ecms_admin_mainfile,将默认的
main.php修改为AddNews.php(发布页)或ListNews.php(新闻列表页),这些页面加载更快
- 如果是云服务器,安装CDN时不要缓存后台目录/e/admin/,在CDN后台添加“目录屏蔽”或“不缓存规则”