0

Rsync を使用して Symfony アプリをデプロイしようと必死になっています。

私はcwRsyncをインストールしましたが、少なくともSSHは動作します。私のアプリは E:\xampp\htdocs\MyProject にあります。

Rsync は実際にサーバー上に 1 つのディレクトリを作成しますが、それ以外は許可エラーのみが発生します。

現在、これは一般的な問題のようですが、次のような解決策を実装することはできません: cwRsync は Windows 7 で "nontsec" を無視します

cwRsync を次のディレクトリにインストールしました: c:\cwrsync

私の質問: 私の fstab ファイルはどのように見える必要がありますか? また、どこに置く必要がありますか? この問題に対する他の解決策はありますか?

前もって感謝します!

4

2 に答える 2

0

スクリプトを実行する

Rsyncは、WindowsとLinuxの間の同期中に、常にファイルのアクセス許可を解除すると思います。

ただし、同期後にファイルを調べ、chmodを使用してファイルのアクセス許可をリセットするスクリプトを非常に簡単に作成できます。

于 2010-11-14T11:02:09.313 に答える
0

あなたが参照したその質問を投稿しました。Windows 7 からsymfonyproject:deployを動作させるために最終的に行ったことは次のとおりです (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

これを行うと、ウィンドウと cygwin の間のファイルシステム全体のマッピングがより明確に定義されます。Cygwin (および cwRsync) は、Windows のパスよりも UNIX のパスをはるかによく理解するため (/wwwC:/wamp/www)、これを行うことですべてがうまく機能します。

于 2010-11-07T15:08:10.077 に答える