これまでそういう場合、"いったんテストサーバーからローカルにコピーして、それを本番サーバーへアップ"という非効率なやり方でやっていたのですが、rsyncが使えそうなので導入してみました。
ちなみにこういう場合、cvsを使うのが一般的らしいですが、csv使ったことないし、今のところバージョン管理も必要としていないのでrsyncを使います。
さっそくググってみると、参考になりそうなサイトがたくさんヒットします。
今回は以下のサイトを参考にさせていただきました。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/096dirsync.html
http://landisk.kororo.jp/diary/28_rsync.php
http://www.aconus.com/~oyaji/backup/rsync.htm
http://linux.paken.org/index.php?rsync%A4%C7%A4%AA%BC%EA%B7%DA%A5%D0%A5%C3%A5%AF%A5%A2%A5%C3%A5%D7
http://www.infoscience.co.jp/technical/rsync/rsync.html
一通り見てみたところ、導入は意外と簡単そう。あと、みなさんだいたいバックアップ用途で使っているようです。
そんなわけでさっそく使ってみました。こんな感じ。
rsync -avz --delete -e ssh /path/to/php/dir test.example.com:/path/to/php
今回は非常にオーソドックスな使い方でしたが、必要に応じて--excludeオプションをつけたり、SSHの公開鍵認証を使ったりすればより便利に使えるようです。
※追記
ディレクトリ指定において、「/path/to/php/dir」と「/path/to/php/dir/」では動きが違ってくるので要注意。--excludeオプションにも影響を与えるので注意が必要。