如何使用已有Drupal站点备份搭建本地调试站点
Drupal 线上项目完整本地副本搭建步骤
你之前操作失败的核心原因是导入全量线上数据库后不需要走Drupal安装向导:安装向导仅用于部署全新空白Drupal站点,检测到目标库已存在Drupal相关表时就会抛出“数据库已存在”错误,这一步完全多余。
按以下步骤操作就能得到和线上完全一致的本地副本,保留所有内容类型、数据、配置:
1. 拉取线上完整代码到本地
- 将线上服务器Drupal根目录的所有文件整体打包,下载到本地后解压到本地web运行环境(XAMPP、WAMP、Docker部署的Drupal运行环境均可)的站点目录,不要下载官方全新Drupal内核覆盖,避免版本、插件、主题和线上不一致。
- 必须保证几个核心目录完整下载:
/sites/default/files/:存储所有上传的媒体文件、图片、生成的样式缓存/modules/:包含所有第三方贡献模块、自定义模块/themes/:包含所有第三方主题、自定义主题/sites/default/:包含站点核心配置文件
2. 导出导入全量数据库
- 线上通过mysqldump、数据库管理工具导出全量数据库,选择导出「结构+数据」,不要只导出结构;导出时可以勾选排除
cache_*开头的缓存表减小备份体积,不排除也不影响正常使用。 - 本地新建空数据库,记录好数据库名、连接用户名、密码,将导出的数据库备份完整导入到这个本地库中,导入完成后确认表数量和线上库一致。
3. 修改本地配置适配环境
- 打开本地代码中的配置文件,默认路径为
/sites/default/settings.php,Drupal8及以上版本如果使用了配置拆分模块,还要同步调整配置目录路径,修改以下参数:- 数据库连接配置:将host、库名、用户名、密码替换为本地数据库的对应参数
- 站点根地址:如果配置了
$base_url参数,替换为本地访问地址,比如http://localhost/my-drupal - 调试配置(可选,方便排错):在文件末尾添加以下配置关闭缓存、禁用前端资源聚合,提升调试效率:
$settings['preprocess_css'] = FALSE; $settings['preprocess_js'] = FALSE; $settings['cache']['bins']['render'] = 'cache.backend.null';
- 给本地
/sites/default/files/目录开启读写权限,避免媒体上传、样式生成报错。
4. 访问验证与收尾
- 确认本地web环境的伪静态规则(Apache看
.htaccess、Nginx看站点conf配置)和线上一致,避免页面404。 - 直接访问本地站点首页即可正常打开站点,不需要访问
/core/install.php安装路径,用线上站点的管理员账号密码就能登录后台。 - 登录后台后清空一次全站缓存,重置图片样式、路径缓存,避免出现图片不显示、链接自动跳转到线上地址的问题。
- 如果线上
files目录体积太大不想全量下载,可以在本地安装Stage File Proxy模块,配置线上站点地址后,本地缺失的媒体文件会自动从线上拉取,不用下载全量文件也能正常预览站点内容。
针对你之前报错的快速修复方案
如果你已经完成了数据库导入,不需要删库重来:只要确认
/sites/default/settings.php中的数据库配置正确,不要访问安装路径,直接打开站点首页就能正常使用,不会再触发“数据库已存在”的报错。如果根目录存在安装流程生成的临时锁文件,删掉/sites/default/files下的临时安装配置文件即可。
内容的提问来源于stack exchange,提问作者AmrVOIS
相关产品推荐
相关产品推荐

