如何将 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显示新站点。
到目前为止我尝试过的:
- 我在
/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 );
您可以使用备份和迁移模块在 GUI 中执行此操作https://www.drupal.org/project/backup_migrate
您可以使用backup&migrate模块进行迁移。使用起来非常简单。
- 压缩 Drupal 目录中的所有文件。 Copy/unzip 该文件在新服务器上。
- 使用备份和迁移模块在文件中备份您的数据库。
- 在新服务器上安装 Drupal 站点。 运行 install.php 并按照步骤操作 - 您可能应该更改
/sites/default/settings.php file
. 中的设置
- 继续
/admin/modules
并启用备份和迁移。
- 继续
/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 没有所需的配置。这是对我有用的解决方案:
- 为了确定需要什么,我在 mysql 调用 temp_db
中创建了一个临时数据库
- 我注释掉了 settings.php
的数据库部分
- 我导航到再次启动安装过程的站点
- 我使用新的 temp_db
完成了安装过程
- 完成此过程后,我转到 settings.php 并将数据库名称更改为正确的名称。
- 再次访问 EC2 实例,成功了!
非常感谢所有提供帮助的人!
我有一个正在运行的本地 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 );
您可以使用备份和迁移模块在 GUI 中执行此操作https://www.drupal.org/project/backup_migrate
您可以使用backup&migrate模块进行迁移。使用起来非常简单。
- 压缩 Drupal 目录中的所有文件。 Copy/unzip 该文件在新服务器上。
- 使用备份和迁移模块在文件中备份您的数据库。
- 在新服务器上安装 Drupal 站点。 运行 install.php 并按照步骤操作 - 您可能应该更改
/sites/default/settings.php file
. 中的设置
- 继续
/admin/modules
并启用备份和迁移。 - 继续
/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 没有所需的配置。这是对我有用的解决方案:
- 为了确定需要什么,我在 mysql 调用 temp_db 中创建了一个临时数据库
- 我注释掉了 settings.php 的数据库部分
- 我导航到再次启动安装过程的站点
- 我使用新的 temp_db 完成了安装过程
- 完成此过程后,我转到 settings.php 并将数据库名称更改为正确的名称。
- 再次访问 EC2 实例,成功了!
非常感谢所有提供帮助的人!