2011-09-28 127 views
1

我一直通过Coda或类似的FTP连接在网站上实时编辑代码,但是我刚刚为用户注册等编写了我的第一个PHP Web应用程序,我非常警惕,我需要一个比“实时编辑”更好的计划。我在共享主机上,所以我认为像SVN和GIT这样的东西可能已经出来了,但是有没有任何软件/脚本/解决方案可以让我将代码直接推送到Web服务器,并在我的Mac上拥有主副本。将CakePHP网络应用部署到共享主机上的最佳选择

什么是人们对网络应用/部署和共享主机的体验?

回答

3

我写我自己的部署系统,以避免上实时编辑。

它可以运行在不同的阶段 - 他们是:

  1. SVN从本地仓库出口(这意味着你没有得到的.svn目录的负载)
  2. rsync的出口代码住服务器 - 但在 - 慢跑模式,这样你就可以看到实际上将要生活的东西。此命令上有一些不包括:在正常模式 - 排除应用程序/ tmp目录
  3. rsync的

我已经把

  • 因为我运行在多个代码中的一些花絮。负载平衡器后面的web服务器,我排除了core.php和database.php。然后,我将每个Web服务器上的这些文件链接到可集中访问的NFS上。
  • 实时运行的rsync,但它只上传一次(到NFS)。部署脚本然后在远程服务器上运行一个命令(通过ssh)来启动NFS和Web服务器之间的rsync。这是一个bash脚本,意味着我可以轻松管理网络节点以及如何将文件推出。

希望有帮助!

2

我使用我写的cakephp shell工具 - 它使用“rsynch”并只上传delta(到目前为止所做的更改)。 带有这样一个rsync脚本,它可以快速上传更改后的文件。只有1-2秒的时间。

与另一个项目我必须承诺一切,并手动“svn更新”服务器所有的时间。非常讨厌+你甚至需要承诺“测试阶段”。

因此毕竟我建议使用上面的增量上传。 确保你不要上传任何tmp的东西,甚至更糟糕的是,重写基于环境的文件,如上传,缓存的文件等。 使用像rsynch这样的批处理脚本通常可以排除一些目录。

我的示例配置是

server  xxx 
username xxx 
password xxx 
local  C:\...\app\ 
remote  /var/www/site 
protocol ftp 
permissions ignore 
state  timesize 
exclude  _* 
exclude  *__* 
exclude  *~* 
exclude  .svn 
exclude  .git 
exclude  /tmp 
exclude  /files/uploads/* 
exclude  /webroot/files/tmp 
exclude  /webroot/img/content/*