Развертывание Symfony Projekt с использованием Rsync в Windows 7 - проблема с разрешениями

Я отчаянно пытаюсь развернуть приложение Symfony с помощью Rsync.

Я, например, cwRsync, и это работает, по крайней мере, SSH. Мое приложение находится в E: \ xampp \ htdocs \ MyProject.

Rsync на самом деле создает один каталог на моем сервере, но кроме этого, я получаю только ошибки разрешения.

Теперь это кажется распространенной проблемой, однако я не могу реализовать какие-либо решения, такие как это: cwRsync игнорирует "nontsec" в Windows 7

Я установил cwRsync в следующий каталог: c:\cwrsync

Мой вопрос: как должен выглядеть мой файл fstab, и где я должен его даже поместить? Есть ли другие решения этой проблемы?

Заранее спасибо!

2 ответа

Запустить скрипт

Я думаю, что Rsync всегда нарушает ваши права доступа к файлам во время синхронизации между Windows и Linux.

Вы можете довольно легко создать скрипт, который просматривает ваш файл после синхронизации и сбрасывает права доступа к файлу, используя chmod.

Я отправил вопрос, на который вы ссылались. Вот что я сделал, чтобы получить Symfony project:deploy работать с Windows 7 (требуется немного взломать Symfony, так что это может быть не самым оптимальным решением). С этим решением вам не нужно устанавливать полнофункциональный Cygwin, вам просто нужен cwRsync.

В вашем fstab, добавьте эту строку (fstab должен находиться под [cwrsync install dir]\etc):

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

По сути, это сопоставляет "C:\wamp\www" в вашей файловой системе Windows с "/www" для cygwin.

изменять 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

Это делает намного более четким определение всей файловой системы между окнами и cygwin. Cygwin (и cwRsync) понимают пути Unix намного лучше, чем пути Windows (т.е. /www против C:/wamp/www), делая это, все работает.

Другие вопросы по тегам