2016-06-10 209 views
1

我有一个可用的本地Drupal 7站点(带有本地MySQL数据库),但现在我试图将它迁移到亚马逊网络服务(目前正在成功运行测试Drupal站点)。我在EC2实例服务器的目录mydrupalsite中拥有所有的drupal文件,并且数据库已被添加到远程MySQL,但我不知道现在要做什么来配置apache以显示新的站点。如何将Drupal站点迁移到Amazon Web Services EC2?

我迄今为止尝试:

  • 我加入/etc/apche2/sites-available文件(复制旧的实例,并在适当时改变目录名)
  • 我改变了符号链接(删除旧符号链接,并添加一个新的)在/etc/apache2/sites-enabled,这样只有新的文件被指向。
  • 然后我重新启动服务器,并导航到该网站,但它带我到安装页面(好像我是从头开始)

这里是$内容数据库变量的设置上的文件我本地机(含用户名更改,但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); 
+0

数据库引擎是本地数据库还是使用RDS? – error2007s

+0

这是一个本地数据库。但数据库也在远程实例上,所以这不是问题。 –

+0

您是否将“mydrupalsite.sql”导入本地数据库? – error2007s

回答

1

可以使用backup&migrate模块migra灰。使用非常简单。

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

注1(数据库设置):

为Drupal安装,当然你需要有数据库。您应该创建空的数据库并为该数据库设置用户。您还应该为该数据库用户设置密码并授予他完整的权限。基本上,在这里你设置你的新服务器上创建空数据库Drupal站点

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 

:在文件的settings.php你再更改这些数据。之后,使用备份和迁移模块填充该数据库。

注2(settings.php这个文件premissions):

当您迁移网站,(在你的情况下,更换旧与新)要更改settings.php这个文件可以有一个小问题写settings.php文件的权限。这是一种常见的情况,默认情况下,您不能更改settings.php,以便编辑/替换该文件,您需要更改文件以及放置该文件的文件夹的权限。没有写权限,你可以用新的站点和旧的settings.php文件(你迁移的站点中的settings.php文件不会覆盖旧文件)。

希望这会有所帮助。

+0

当我在新服务器(AWS的EC2实例)上获得备份后,如何配置服务器以使用新的站点而不是旧的?我在'/ etc/apche2/sites-available'中添加了该文件,并在'/ etc/apache2/sites-enabled'中更改了符号链接,以便仅指向新文件。然后我重新启动服务器,但它将我带到安装页面。 –

+1

如果你可以进入安装页面,那么你的Apache配置工作正常 - 通常你所描述的问题意味着settings.php丢失,或者无法被web服务器读取 – Clive

+1

有时你可能会遇到问题想要更改settings.php文件。对于那些将来可能会遇到这个问题的人,我会在这个问题的答案中加注。 – Darko

1

你可以做到这一点与备份GUI和迁移模块https://www.drupal.org/project/backup_migrate

+0

备份和传输不是问题。在新服务器上获得完整备份后,如何配置Apache以使用新站点而不是旧站点? –

+1

如果您按照@Darko的说法进行操作,它基本上会替换您运行的空白网站,并且您使用备份和迁移进行备份(因此您不需要对Apache执行任何操作)。 –

1

好吧看来问题在于settings.php没有所需的配置。这里是为我工作的解决方案:

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

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

+0

是的,因为我们认为问题在settings.php中。当您使用备份和迁移迁移网站时,我会在回答详细数据库配置时再添加一条备注。干杯 – Darko