You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal多站点配置求助:非标准目录下如何让localhost识别site1

嘿,作为Drupal多站点的新手,遇到目录结构的问题很正常,我来一步步帮你解决,让你的site1能被Drupal识别并通过localhost访问:

步骤1:配置站点映射文件(sites.php)

Drupal通过sites/sites.php来匹配请求域名对应的站点目录,你需要做以下操作:

  • 进入docroot/sites目录,找到example.sites.php文件,复制一份并重命名为sites.php
  • 打开sites.php,在文件末尾添加一行映射规则:
    $sites['localhost'] = 'site1';
    
    这行代码的作用是告诉Drupal:当访问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 cr
    
    或者如果没有安装Drush,也可以通过Drupal后台的“配置->性能”页面点击“清空所有缓存”按钮。

这样操作之后,Drupal就能正确识别site1站点,并且加载src目录下的模块和主题了。

内容的提问来源于stack exchange,提问作者Sofia Lunkes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:04:23