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

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

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

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 14 ноября 2010

Запуск сценария

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

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

0 голосов
/ 07 ноября 2010

Я отправил вопрос, на который вы ссылались.Вот что я в итоге сделал, чтобы заставить 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), поэтому при этом все просто работает.

...