如何部署php程序,如何正确部署您的PHP应用程序?

如何正确地将应用程序从开发部署到生产,以及如何处理多个站点配置。

我所有的开发都是通过位于var / svn / myapp / trunk的svn完成的

实际的生产代码是/ var / www / myapp。

我查看最新的代码到我的本地机器到一个名为“myapp_latest_svn”的目录。

我的主要settings.php中有网站和位置特定的代码,其中H_PATH =’http://myapp.com‘

& db_host,db_user_name和db_password的db配置设置,如您所知

本地机器设置(其中localhost / myapp.com只是一个Apache别名)&在生产(live site在myapp.com上运行)服务器。

.htaccess文件与生产服务器上的文件不同。总之,开发和生产之间存在一些差异。

我把所有的工作都保存在SVN中。每天早晨,我使用SVN Update,将最新的代码更新到本地的svn存储库。

当我准备好上线的时候,我用svn Commit来构建一个版本。

然后在发行版中,我必须记住将所有相应的dev文件更改为他们的生产对象。

现在我不得不手动编辑制作settings.php& .htaccess来反映网站的具体变化。

我正在寻找一个自动化的方式从开发到生产完成与版本控制和

没有手动编辑错误的错误和不良练习的文件。

一种方法是使文件的生产版本只读(0444)。这样当我做svn出口,

它们不会被dev版本的文件覆盖,我不用担心编辑文件

从开发到生产。但是,这是像持续集成这样的事情的糟糕方式。

还可以通过制作settings.php的多个副本(一个用于localhost,beta和prod)。然后使用shell脚本

从svn导出,然后一旦导出完成,它将使用正确的settings.php替换settings.php,

取决于我们正在部署的位置。这样一切都是自动化的。

但这也是一个跛脚的方式。

最后的方式是

if( eregi ("myapp.com$", $_SERVER['HTTP_HOST']) ){

define('H_PATH', 'myapp.com');

} else {

define('H_PATH', 'localmyapp.com');

}

对于settings.php而言,这是很好的。

但是在.htaccess中,你不能像.htaccess这样检查。

每次我部署我的网站时,我不想要最终做出改变设置。

我的DB模式不在版本控制中,所以db不是我的问题,只有settings.php和.htaccess。

另外,如何告诉svn不更新某些目录,因为这也是站点特定的(/ log,/ cache,/ assets / / downloads)。

此外,我还需要保存apache(www_data)写入访问完整的上述文件。

最后,当我导出时,我不想将空的trunk目录和.svn文件复制到生产服务器。

在从svn到生产服务器的构建时,如何使用Phing甚至一个shell脚本进行集成,而不会导致任何这些问题。

这对于野外的许多wannabe应用程序开发人员来说可能是有用的。

提前致谢,

ocptime

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值