【问题标题】:How can I migrate a Drupal site to Amazon Web Services EC2?如何将 Drupal 站点迁移到 Amazon Web Services EC2?
【发布时间】:2016-06-10 15:05:14
【问题描述】:

我有一个可用的本地 Drupal 7 站点(带有本地 MySQL 数据库),但现在我正试图将其迁移到 Amazon Web Services(它目前正在成功运行一个测试 Drupal 站点)。我的所有drupal 文件都在EC2 实例服务器上的mydrupalsite 目录中,并且数据库已添加到远程MySQL,但我不知道现在该怎么做才能配置apache 以显示新站点。

到目前为止我所尝试的:

  • 我在/etc/apche2/sites-available 中添加了文件(复制了旧实例并在适当的地方更改了目录名称)
  • 我更改了/etc/apache2/sites-enabled 中的符号链接(删除了旧符号链接并添加了一个新符号链接),以便只指向新文件。
  • 然后我重新启动服务器并导航到该站点,但它会将我带到安装页面(就像我重新开始一样)

这是我本地机器上设置文件中 $databases 变量的内容(用户名已更改,但 pw 为空字符串)

if (!isset($databases)) {
  $databases = array();
}

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'naicdrpl',
  'username' => 'mylocalsiteusername',
  'password' => '',    //    password is an empty string
  'host' => '127.0.0.1',
  'port' => 33067 );

【问题讨论】:

  • 您的数据库引擎是本地的还是使用 RDS?
  • 这是一个本地数据库。但数据库也在远程实例上,所以这不是问题。
  • 您是否将“mydrupalsite.sql”导入本地数据库?
  • 不,我将它导入到远程 MySQL(但它与旧数据库一起存在于 MySQL 中)
  • 你能把你正在使用的东西粘贴到你的 /sites/default/settings.php 中,只是掩盖凭据

标签: amazon-web-services drupal amazon-ec2 phpmyadmin drupal-7


【解决方案1】:

您可以使用backup&migrate 模块进行迁移。使用起来非常方便。

  1. 压缩 Drupal 目录中的所有文件。在新服务器上复制/解压缩该文件。
  2. 使用备份和迁移模块将数据库备份到文件中。
  3. 在新服务器上安装 Drupal 站点。运行 install.php 并按照步骤操作 - 您可能应该更改 /sites/default/settings.php file 中的设置。
  4. 继续 /admin/modules 并启用备份和迁移。
  5. 继续/admin/config/system/backup_migrate/restore上传您的备份文件并点击恢复按钮

注意 1(数据库设置):

对于 Drupal 安装当然你需要有数据库。您应该只创建空数据库并为该数据库设置用户。您还应该为该数据库用户设置密码并赋予他全部权限。然后在 settings.php 文件中更改该数据:

if (!isset($databases)) {
  $databases = array();
}

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'nameofyourDB', //here you enter name of new empty database
  'username' => 'mylocalsiteDBusername', //here you enter user name of database user
  'password' => 'yourpassword',    //you should always set up password for database user for security reasons
  'host' => '127.0.0.1', //name of your host (usually is localhost)
  'port' => 33067 ); //default MySql port

基本上在这里,您在新服务器上创建的空数据库上设置 Drupal 站点。之后,您使用备份和迁移模块填充该数据库。

注意 2(settings.php 文件权限):

当您迁移站点并且(在您的情况下将旧站点替换为新站点)您想要更改 settings.php 文件时,settings.php 文件的写入权限可能会出现一些问题。通常情况下,默认情况下您无法更改 settings.php,因此为了编辑/替换该文件,您需要更改文件的权限以及放置该文件的文件夹的权限。如果没有写入权限,您最终会得到新站点和旧 settings.php 文件(您迁移的站点中的 settings.php 文件不会覆盖旧文件)。

希望这会有所帮助。

【讨论】:

  • 在新服务器(AWS 的 EC2 实例)上获得备份后,如何配置服务器以使用新站点而不是旧站点?我在/etc/apche2/sites-available 中添加了文件并更改了/etc/apache2/sites-enabled 中的符号链接,以便只指向新文件。然后我重新启动了服务器,但它把我带到了安装页面。
  • 如果您可以进入安装页面,那么您的 Apache 配置工作正常 - 通常您描述的问题意味着 settings.php 丢失,或者 Web 服务器无法读取跨度>
  • 有时当您想更改 settings.php 文件时可能会出现问题。对于将来可能遇到该问题的人,我将在我的答案中添加注释。
【解决方案2】:

您可以在 GUI 中使用备份和迁移模块 https://www.drupal.org/project/backup_migrate 进行此操作

【讨论】:

  • 备份和传输不是问题。在新服务器上获得完整备份后,如何配置 apache 以使用新站点而不是旧站点?
  • 如果您按照@Darko 所说的进行操作,它基本上会将您运行的空白站点替换为您从中进行备份的站点(使用备份和迁移)所以您不需要对 Apache 做任何事情.
【解决方案3】:

好的,问题似乎是 settings.php 没有所需的配置。这是对我有用的解决方案:

  1. 为了确定需要什么,我在 mysql call temp_db 中创建了一个临时数据库
  2. 我注释掉了settings.php的数据库部分
  3. 我导航到再次开始安装过程的站点
  4. 我使用新的 temp_db 完成了安装过程
  5. 完成此过程后,我转到settings.php并将db名称更改为正确的名称。
  6. 再次访问 EC2 实例,它成功了!

非常感谢所有帮助过的人!

【讨论】:

  • 是的,因为我们假设问题出在 settings.php 中。当您使用备份和迁移迁移站点时,我将在我的答案中添加一个关于详细数据库配置的注释。干杯
猜你喜欢
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 2023-03-07
  • 2011-12-18
  • 2016-08-30
  • 1970-01-01
  • 2011-08-17
  • 2016-08-31
相关资源
最近更新 更多