如何将 Drupal 站点迁移到 Amazon Web Services EC2?

How can I migrate a Drupal site to Amazon Web Services EC2?

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

到目前为止我尝试过的:

这是我本地机器上设置文件中 $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 );

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

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

  1. 压缩 Drupal 目录中的所有文件。 Copy/unzip 该文件在新服务器上。
  2. 使用备份和迁移模块在文件中备份您的数据库。
  3. 在新服务器上安装 Drupal 站点。 运行 install.php 并按照步骤操作 - 您可能应该更改 /sites/default/settings.php file.
  4. 中的设置
  5. 继续/admin/modules并启用备份和迁移。
  6. 继续 /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 因此为了 edit/replace 该文件您需要更改文件的权限以及放置该文件的文件夹的权限。如果没有写入权限,您最终可能会得到新站点和旧 settings.php 文件(您迁移的站点中的 settings.php 文件不会覆盖旧文件)。

希望对您有所帮助。

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

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

非常感谢所有提供帮助的人!