Развертывание 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
), делая это, все работает.