如何自动上传更改?

时间:2011-10-16 09:35:56

标签: php linux

我正在使用php开发一个简单的网站(在VPS中)。 我的问题是:如何使用安全协议发送我所做的更改? 目前我使用 scp ,但我需要一个软件来检查文件是否已更改,如果是,则将其发送到服务器。

么?

4 个答案:

答案 0 :(得分:3)

使用inotify + rsync或lsyncd http://code.google.com/p/lsyncd/

查看此博客帖子中的inotify方法http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/

答案 1 :(得分:1)

如果您可以完全访问您的VPS,那么您可以通过ssh和webdav在本地安装远程主目录作为普通文件系统。之后,您可以在本地编辑您的计算机。任何更改都应自动上传。

查看相关的article

答案 2 :(得分:0)

  • FTP(S):在目标上设置FTP服务器以及SSL证书(个人证书足够好)。

  • SSH:您可以通过SSH本身传递文件,但我发现它最不可靠(imho)。

  • 共享:您可以与本地计算机共享文件夹(与其他人一样)。如果不容易诊断断线问题,这将是完美的解决方案。我经历过这一切,并不是一次愉快的经历。

  • Dropbox :在您的VPS上设置Dropbox服务器,在本地PC上设置Dropbox客户端。使用dropbox(或像skydrive,icloud等类似的方法),也有一些额外的优势,例如版本控制,恢复,冲突检测...

总而言之,我认为FTPS方式是我用过的最可靠和最受欢迎的方式。通过SSH,它在使用大约2天后引起了一些问题。磁盘共享方法给我带来了几个问题,主要是因为它要求你对协议等有所了解。 Dropbox方式虽然设置起来有点耗时,但仍然是一个很好的解决方案。但是,我只会将它用于大客户,而不是普通的宠物爱好网站:)

同样,这只是来自经验。

答案 3 :(得分:0)

您也可以使用Subversion执行此操作,但设置可能需要一段时间。

您基本上创建了一个Subversion存储库并提交了所有代码。然后在您的Web服务器上,使根目录为该存储库的签出。

创建一个运行svn update命令的脚本,并将其设置为post-commit钩子。从本质上讲,每次从工作站提交时都会执行脚本。

简而言之,你会...

  1. 在本地更新您的代码
  2. 通过Subversion提交(使用Tortoise SVN,它简单易用)
  3. 自动提交将触发服务器上的提交后挂钩并运行svn update命令以同步根目录中的代码。
  4. 您当然必须使用.htaccess文件将所有.svn文件夹隐藏到公共场所(假设您正在使用Apache)。

    我知道这会起作用,就像我过去做过的那样。

    这个选项的美妙之处在于你也得到了二合一。源版本和易于更新。如果你犯了错误,你也可以轻易地将它们还原。