Drupal 10迁移后出现路由错误,求数据库连接及问题解决方法
Drupal 10 连接旧数据库及路由错误修复方案
一、旧数据库连接配置验证
你当前的数据库配置格式没问题,要落实以下细节:
- 确认
database字段的lobo就是你导入旧数据的目标库,别写错名字 - 本地MySQL的用户名确实是
root、密码为空,要是你给MySQL设过密码,得把密码填进去 - 数据库在本地的话
host用localhost没问题,要是在远程服务器上,得换成对应IP或域名 driver设为mysql适配MySQL/MariaDB,不用改
要是要切换到旧数据库,直接把database的值改成旧数据库的名称就行,前提是旧数据库的备份已经完整导入到这个库里面。
二、解决"No route found for GET ..."错误
1. 强制清除缓存
Drupal的路由全靠缓存撑着,迁移后必须清缓存:
- 用Drush的话,在项目根目录跑命令:
drush cr - 没装Drush的话,直接删
web/sites/default/files/php下面的缓存文件夹,或者检查settings.php里有没有缓存相关的硬编码配置,有的话注释掉
2. 核对站点目录结构
确认你访问的http://localhost/drupals_new_test/web/对应的文件夹里,index.php、core这些核心文件全在,没丢东西。
3. 配置站点基础URL
打开web/sites/default/settings.php,要是没设置$base_url,加上这行:
$base_url = 'http://localhost/drupals_new_test/web';
这能帮Drupal准确定位站点路径,避免路由解析出错。
4. 检查路由表完整性
旧数据库里的router表存着所有路由信息,要是导入的时候这个表没导全或者损坏了,肯定找不到路由。去数据库里查一下router表有没有数据,行数是不是和旧数据库一致,不一致的话重新导入完整的数据库备份。
5. 验证Web服务器配置
- Apache的话,确保
web目录下的.htaccess文件存在,而且服务器开了mod_rewrite模块 - Nginx的话,要配置正确的rewrite规则,把请求导向
index.php - 确认服务器的文档根目录指向
drupals_new_test/web,或者虚拟主机配置里的路径没错
内容的提问来源于stack exchange,提问作者Amit Kumar
相关产品推荐
相关产品推荐

