0

我正在拼命地尝试使用 Rsync 部署我的 Symfony 应用程序。

我安装了 cwRsync 并且它有些工作,至少 SSH 可以。我的应用程序位于 E:\xampp\htdocs\MyProject。

Rsync 实际上确实在我的服务器上创建了一个目录,但除此之外,我只收到权限错误。

现在,这似乎是一个常见问题,但是我无法实施任何解决方案,例如这个: cwRsync ignores "nontsec" on Windows 7

我将 cwRsync 安装到以下目录:c:\cwrsync

我的问题:我的 fstab 文件需要看起来像什么,我什至必须把它放在哪里?这个问题还有其他解决方案吗?

提前致谢!

4

2 回答 2

0

我已经发布了你提到的那个问题。这是我最终为使 symfonyproject:deploy在 Windows 7 上工作而做的事情(它需要稍微修改一下 symfony,因此它可能不是最佳解决方案)。使用此解决方案,您不需要安装成熟的 cygwin,只需要 cwRsync。

在您的fstab中,添加此行(fstab 应位于 下 [cwrsync install dir]\etc):

C:/wamp/www /www ntfs binary,noacl 0 0

这实际上将 Windows 文件系统上的“C:\wamp\www”映射到 cygwin 的“/www”。

修改symfony/lib/task/sfProjectDeployTask.class.php

protected function execute($arguments = array(), $options = array())
{
  ...
  $dryRun = $options['go'] ? '' : '--dry-run';

  // -- start hack --
  if(isset($properties['src']))
    $src = $properties['src'];
  else
    $src = './';

  $command = "rsync $dryRun $parameters -e $ssh $src $user$host:$dir";
  // -- end hack --

  $this->getFilesystem()->execute($command, $options['trace'] ? array($this, 'logOutput') : null, array($this, 'logErrors'));

  $this->clearBuffers();
}

这允许您在 中指定一个附加src字段properties.ini

src=/www/myProject

这样做可以更清楚地定义 windows 和 cygwin 之间的整个文件系统映射。/wwwCygwin(和 cwRsync)比 windows 路径(即vs. )更好地理解 unix 路径C:/wamp/www,所以这样做可以让一切正常工作。

于 2010-11-07T15:08:10.077 回答
0

运行脚本

我认为 Rsync 在 Windows 和 Linux 之间的同步过程中总是会破坏你的文件权限。

您可以很容易地创建一个脚本,在同步后遍历您的文件并使用 chmod 重置文件权限。

于 2010-11-14T11:02:09.313 回答