欢迎各位兄弟 发布技术文章
这里的技术是共享的
Drupal 7 首页加载慢是一个比较常见的问题,尤其是站点运行时间较久、模块较多或服务器配置一般的情况下。
我们可以按 前端 → 后端 → 数据库 → 缓存 → 环境 这几个方向系统性排查。
请先执行以下几个检查步骤:
安装并启用 Devel 模块(如果没有,先启用):
我使用的方法是 见 /node-admin/23220
然后在页面底部会显示:
页面生成时间(Page execution time)
SQL 查询数目和耗时
→ 这能直观判断是数据库慢、PHP逻辑慢还是前端资源慢。
看看是:
HTML加载慢(说明PHP或数据库问题)
静态资源慢(说明图片/CSS/JS没有缓存)
等待时间长 (TTFB高)(说明后端慢)
如果 TTFB(Time to First Byte) 很高(超过1秒),那肯定是 Drupal 后端问题。
在 /admin/config/development/performance
:
✔ 启用「页面缓存 (Page cache)」
✔ 启用「区块缓存 (Block cache)」
✔ 启用「压缩 CSS 与 JS 文件」
✔ 启用「聚合 CSS 与 JS 文件」
命令方式:
确保以下表正常工作(cache
, cache_page
, cache_block
等)。
如果表太大或频繁读写慢,可改用 Memcached 或 Redis 存储缓存。
在 MySQL 开启慢查询日志:
分析是否有某些 view、node 或模块 SQL 太慢。
Views(尤其是没有缓存的复杂视图)
Panels / Context / Rules 逻辑复杂时
Statistics 模块(页面访问统计)
Search 模块(未索引完)
建议:
对 Views 启用缓存(Views → Advanced → Caching → Time-based)
关闭不必要模块:
使用 OPcache(提升 30%+)
PHP memory_limit 至少设为 256M
或 512M
避免使用 PHP-FPM 动态慢模式(建议 static 或 ondemand)
启用 gzip 压缩
使用 Nginx FastCGI cache 或 Varnish 加速首页
CDN 加速静态资源
目的 | 命令 |
---|---|
查看模块运行情况 | drush pm-list --status=enabled |
查看缓存配置 | drush vget cache* |
清缓存 | drush cc all |
启用页面缓存 | drush vset cache 1 |
检查数据库连接时间 | mysqladmin -uUSER -p ping |
若是生产站点:
启用 页面缓存 + CSS/JS 聚合
安装 Boost 模块(静态页面缓存,非常有效)
安装 Redis 或 Memcached 取代数据库缓存
开启 OPcache + Nginx gzip + CDN
定期运行 drush sql-dump
和 drush cc all
如果你能提供以下信息,我可以帮你更精确地定位慢点:
主页加载的 TTFB(或完整加载时间)
Devel 显示的 SQL 查询数和耗时
是否启用了 Views 或 Panels
当前是否使用 Redis/Memcached
是否要我帮你列出一份 “Drupal 7 首页加载慢的精准排查脚本(含 drush 命令)”?