使用drush和ssh更新远程站点

时间:2015-06-16 07:05:25

标签: php drupal drush

我很擅长匆忙。我们有一个drupal站点的git repo,我想用drush推送到远程服务器。我可以轻松scp drupal文件或在运行git pull的遥控器上设置一个cron但我仍然想学习如何推送代码并将远程drupal站点与我当地的drupal同步。

目前,我在本地运行了drupal,我使用git更新了repo。 ssh已经配置好了,我可以使用密钥ssh到远程drupal服务器。我还创建了.drush / aliases.drushrc.php文件,并通过运行drush @dev状态对其进行了测试。它运作良好

<?php

    $aliases['dev'] = array(
        'root' => '/var/www/html',
        'uri' => 'dev.example.com',
        'remote-host' => '192.168.1.50'
    );

?>

现在,我希望我的本地drupal站点与192.168.1.50服务器上的服务器同步。本地drupal文件在我的/ home / ubuntu / drupal_site上。

我几乎没有问题:

  1. 更新远程drupal服务器的drush命令/参数是什么?

  2. 如果远程服务器还没有drupal文件,那么drush命令/参数会是什么?

2 个答案:

答案 0 :(得分:1)

同步前备份drush arddrush @dev ard或适合的别名。您可以在别名设置中设置备份路径。

我认为您将远程服务器命名为dev。这就是为什么我在下面保留它并使用别名local作为本地drupal站点。

为您当地的drupal网站添加别名。然后,您可以使用以下命令同步文件:

drush rsync @local @dev

@local是源,@dev是目标。有关如何使用命令rsync的更多详细信息可以显示为:

drush help rsync

您还需要同步数据库以使远程站点运行。为此,将数据库帐户数据添加到@local和@dev的别名数据中。它看起来像这样:

'databases' => array(
  'default' => array(
    'default' => array(
      'driver' => 'mysql',
      'username' => 'USERNAME',
      'password' => 'PASSWORD',
      'port' => '',
      'host' => 'localhost',
      'database' => 'DATABASE',
    )
  )
)

用您的数据替换空间支架。然后数据库可以与以下内容同步:

drush sql-sync @local @dev

@local是源,@dev是目标。

最初,同步将在一个方向上进行。在此之后,最好将文件从开发或测试站点同步到生产站点。数据库从生产站点到开发或测试站点以相反的方式同步。

答案 1 :(得分:0)

Drush和Git的工作流程在某种程度上有所不同,因为Drush可以单独提取包 - 你可以使用Git推送到服务器。请务必检查/files目录,该目录通常位于.gitignore文件中 - 可能的方法是直接从实际站点镜像文件目录。

同时更新和检查2个或多个站点(本地和远程)的常用方法是在计算机上的脚本上为站点使用Drush别名。

Articles like this one是一个很好的起点。

相关问题