Drupal多站点配置求助:非标准目录下如何让localhost识别site1
嘿,作为Drupal多站点的新手,遇到目录结构的问题很正常,我来一步步帮你解决,让你的site1能被Drupal识别并通过localhost访问:
步骤1:配置站点映射文件(sites.php)
Drupal通过sites/sites.php来匹配请求域名对应的站点目录,你需要做以下操作:
- 进入
docroot/sites目录,找到example.sites.php文件,复制一份并重命名为sites.php - 打开
sites.php,在文件末尾添加一行映射规则:
这行代码的作用是告诉Drupal:当访问$sites['localhost'] = 'site1';localhost时,使用site1这个站点目录的配置。
步骤2:修改site1的settings.php,添加模块和主题的扫描路径
因为你的模块和主题放在了site1/src/下面,而Drupal默认只会扫描站点目录下直接的modules和themes文件夹,所以需要手动指定额外的扫描路径:
- 打开
site1/settings.php文件,在合适的位置(比如数据库配置之后)添加以下代码:
这里用// 添加自定义模块目录 $settings['module_directories'][] = __DIR__ . '/src/modules'; // 添加自定义主题目录 $settings['theme_directories'][] = __DIR__ . '/src/themes';__DIR__是获取当前settings.php所在的目录(也就是site1),这样路径更可靠,不会因为站点部署位置变化而出错。
步骤3:检查文件权限
确保web服务器的用户(比如Linux下的www-data,Windows下的IIS_IUSRS)对site1目录及其子目录(包括src下的modules和themes)有读取权限,如果是安装阶段,还需要写入权限(比如创建配置文件或缓存目录)。
步骤4:完成站点安装或清理缓存
- 如果还没安装这个站点,直接访问
localhost/install.php,Drupal会自动识别site1的配置,按照安装向导完成即可。 - 如果已经安装过,需要清理Drupal的缓存,让它识别新的模块和主题路径。可以用Drush命令:
或者如果没有安装Drush,也可以通过Drupal后台的“配置->性能”页面点击“清空所有缓存”按钮。drush cr
这样操作之后,Drupal就能正确识别site1站点,并且加载src目录下的模块和主题了。
内容的提问来源于stack exchange,提问作者Sofia Lunkes
相关产品推荐
相关产品推荐

