使用Drush迁移Drupal网站

2020年12月31日19:38:43 发表评论 60 次浏览

介绍

了解如何使用Drush迁移Drupal网站, 该工具可让你从命令行使用Drupal。 Drush可用于轻松地将Drupal网站从同一服务器上的一个文件夹迁移到另一个文件夹, 或从一个服务器迁移到另一个服务器。

要求

  • 运行Linux的服务器(CentOS 7或Ubuntu 14.04)。
  • Drupal已安装并正在运行。
  • 至少一个Drupal网站。

有关安装Drupal的更多信息, 请参阅我们的文章:

  • 使用NGINX在Ubuntu 16.04上安装Drupal 7
  • 使用Apache在CentOS 7或Ubuntu 14.04上安装Drupal 7

安装Drush

如果尚未安装Drush, 则需要安装。在CentOS 7和Ubuntu 14.04上安装Drush的最佳方法是通过以下命令使用PHP的Composer实用程序:

sudo php -r "readfile('http://files.drush.org/drush.phar');" > drush

接下来, 使用以下命令使Drush安装可执行:

sudo chmod +x drush

最后, 移动Drush文件, 以便可以在服务器上的任何位置使用Drush:

sudo mv drush /usr/local/bin

现在, 你可以使用以下命令测试Drush的安装:

sudo drush status

如果正确安装了Drush, 这将返回有关服务器的信息:

user@localhost:~# sudo drush status
 PHP configuration      :  /etc/php5/cli/php.ini
 PHP OS                 :  Linux
 Drush script           :  /usr/local/bin/drush
 Drush version          :  8.1.3
 Drush temp directory   :  /tmp
 Drush configuration    :
 Drush alias files      :

创建别名

你将需要创建两个Drush别名:一个用于现有站点, 另一个用于新站点。首先编辑aliases.drushrc.php使用命令文件:

sudo nano /root/.drush/aliases.drushrc.php

这是一个PHP脚本, 这意味着文件的第一行必须为:

<?php

最后一行需要是:

?>

在这两个括号之间, 我们将放置两个站点的别名。格式为:

$aliases['old-site'] = array(
   'root' => '/var/www/html', 'uri' => 'example.com', );
$aliases['new-site'] = array(
   'root' => '/var/www/html/new-site', 'uri' => 'example.com/new-site', );

例如, 为旧站点创建一个别名, 该站点的文件位于/ var / www / html根据Drupal的安装, 在以下位置可见http://example.com你将使用以下内容:

假设我们要将此现有站点移至子目录/ var / www / html / new-site。我们将需要为此站点添加第二个别名:

总共, 文件将显示为:

<?php

 $aliases['old-site'] = array(
   'root' => '/var/www/html', 'uri' => 'example.com', );

$aliases['new-site'] = array(
   'root' => '/var/www/html/new-site', 'uri' => 'example.com/new-site', );

?>

保存并退出文件。然后通过使用以下命令检查现有站点的状态来验证是否已正确设置它:

sudo drush @old-site status

接下来, 为新站点创建文件夹。在此示例中, 命令将是:

sudo mkdir /var/www/html/new-site

创建新数据库

你将需要创建一个新数据库并为该新站点添加一个新数据库用户。为此, 请使用以下命令登录到MySQL / MariaDB:

sudo mysql -u root -p

输入MySQL / MariaDB根用户密码后, 你将登录到MySQL / MariaDB客户端。

使用以下命令创建数据库:

CREATE DATABASE [database name];

更换[数据库名称]与你要用于新数据库的名称。例如, 如果你想命名数据库new_drupal_site该命令将是:

CREATE DATABASE new_drupal_site;

为此数据库创建一个用户, 并使用以下命令授予他们特权:

GRANT ALL ON [database name].* TO [database username]@localhost IDENTIFIED BY '[database user password]';

更换:

  • [数据库名称]和你的数据库名称。
  • [数据库用户名]以及要为数据库创建的用户名。
  • [数据库用户密码]和该用户的密码。注意:确保为用户提供一个强密码。

例如, 创建一个名为new_drupal_user用密码Fr4i * Re!2并为用户授予new_drupal_site数据库, 命令为:

GRANT ALL ON new_drupal_site.* TO new_drupal_user@localhost IDENTIFIED BY 'Fr4i*Re!2';

完成后, 使用以下命令退出数据库:

quit;

迁移文件

现在已经完成了所有设置, 现在该使用以下命令迁移网站文件了:

sudo drush core-rsync @old-site @new-site --include-conf

要激活新网站, 你需要编辑settings.php文件并更新数据库信息。该文件位于[网站文档根目录] / sites / default目录。在我们的示例中, 我们将使用以下命令编辑该文件:

sudo nano /var/www/html/new-site/sites/default/settings.php

向下滚动到这一部分:

$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => '[database name]', 'username' => '[database username]', 'password' => '[database password]', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), );

将数据库名称, 数据库用户名和数据库密码替换为你在上一步中创建的信息。在我们的示例中, 这将是:

$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'new_drupal_site', 'username' => 'new_drupal_user', 'password' => 'Fr4i*Re!2', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), );

保存并退出文件。然后使用以下命令将该站点迁移到新数据库:

sudo drush sql-sync @old-site @new-site --create-db

这将完成迁移, 并且你的Drupal站点现在将在其新位置处于活动状态。

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: