首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当新用户注册时,您能复制Drupal 7站点和数据库吗?

问当新用户注册时,您能复制Drupal 7站点和数据库吗?
EN

Drupal用户
提问于 2015-01-25 01:03:28
回答 1查看 74关注 0票数 1

我正在建设一个网站,将用作一个新用户的模板网站。一旦有人注册,他们应该收到原始主模板站点的副本,包括他们自己的SQL数据库。

理想情况下,新的子站点需要从主站点接收更新。

当有人注册时,有没有一种复制和整个网站的方法?这能通过多个站点来实现吗?

EN

回答 1

Drupal用户

发布于 2015-01-26 04:21:07

是的,使用钩子_用户_插入()启动进程。从实现hook_user_insert()的自定义模块中,您可以运行任何您想要的代码。然而,要实现它,您需要编写大量的自定义代码。

您的hook_user_insert()函数需要执行很多步骤:

  1. 获取settings.php中定义的数据库连接信息
  2. 运行mysqldump来生成数据库的.SQL转储
  3. 运行tar命令,生成Drupal代码库(PHP )和文件目录的.tar.gz文件。
  4. Zip或tar之类的东西-- sql文件、.tar.gz文件,可能还有某种指令。
  5. 呈现供下载的文件。这变得更加棘手,因为您不希望在代码库中包含该文件。或者,每次克隆数据库时,都会在下一个用户的.zip文件中从前面的用户那里获取所有的.zip文件。您需要直接提供文件,将zip文件排除在未来的代码库存档之外,或者将zip文件从不会压缩到zip文件的目录中提供。
  6. (可选)将用户清除出主站点,这样以后的注册就不存在了。

你问多个网站,这是相关的,只有当你计划立即开始托管克隆网站自己。如果您的计划是让用户下载他们的文件和.SQL数据库,您不需要担心这个问题。(用户将不得不担心加载SQL转储和设置一个数据库用户名和密码,您将需要对它们进行临时检查,否则它将永远无法工作)。

如果您的计划是克隆您的服务器上的网站,那么您可以使用多个站点。你的步骤是:

  1. 获取settings.php中定义的数据库连接信息
  2. 运行mysqldump来生成数据库的.SQL转储
  3. 创建一个新的MySQL数据库来保存新的克隆站点4。如果允许您的from服务器创建mysql数据库,那么它真的不受黑客的攻击吗?
  4. 为新站点创建一个新站点/new.example.com文件夹(如果命名为new.example.com)
  5. 在site/new.example.com中为新站点的数据库创建一个新的settings.php文件
  6. 将SQL转储从步骤2加载到新数据库(使用命令行mysql命令)
  7. 将用户重定向到新站点。您将需要使用通配符DNS (即。*.example.com woudl匹配site1.example.com、site2.example.com等,您不需要为每个新站点添加DNS条目)。

虽然这一计划并非不可能,但要使其顺利实施将是相当困难的。您最大的挑战将是帮助用户完成创建新数据库、设置用户名和密码、加载SQL转储、配置get服务器等复杂任务。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/145311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档