我正在拼命地尝试使用Rsync部署我的Symfony应用程序。
我安装了cwRsync,它在某种程度上是有效的,至少SSH是有效的。我的应用程序位于E:\xampp\htdocs\MyProject。
Rsync实际上在我的服务器上创建了一个目录,但除此之外,我只得到权限错误。
现在,这似乎是一个常见的问题,但是我不能实现任何解决方案,比如这个:cwRsync ignores "nontsec" on Windows 7
我将cwRsync安装到以下目录: c:\cwrsync
我的问题是:我的fstab文件需要看起来像什么,我甚至必须将它放在哪里?这个问题还有其他的解决方案吗?
提前感谢!
发布于 2010-11-07 23:08:10
我已经发布了你提到的那个问题。为了让symfony project:deploy在windows7上运行,我最终做了以下工作(它需要对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();
}这允许您在properties.ini中指定附加的src字段
src=/www/myProject这样做可以使windows和cygwin之间的整个文件系统映射更清晰地定义。Cygwin (和cwRsync)比windows路径(即/www和C:/wamp/www)更好地理解unix路径,所以这样做可以让一切正常工作。
发布于 2010-11-14 19:02:09
运行脚本
我认为在Windows和Linux之间进行同步时,Rsync总是破坏您的文件权限。
不过,您可以很容易地创建一个脚本,在同步之后遍历您的文件,并使用chmod重置文件权限。
https://stackoverflow.com/questions/4098122
复制相似问题