Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
部署PHP代码?_Php_Deployment - Fatal编程技术网

部署PHP代码?

部署PHP代码?,php,deployment,Php,Deployment,关于如何推出PHP代码的问题。以前,我们只需运行测试套件,提交更改,然后在产品服务器上启动svn来“推送”更改。我想改变这一点,因为出于多种原因,我不太喜欢在生产服务器上使用svn 我正在考虑编写一个脚本,它可以执行以下操作:(将从svn服务器推出) svn导出 Tar和scp将新代码添加到生产服务器 ssh到生产服务器并解压缩归档 显然,在处理/清理过程中会覆盖所有以前的文件 这将是迅速的。任何bug都可以很容易地修复、提交,然后将代码重新推出服务器(或恢复修订版等)。对该方法的任何评论/

关于如何推出PHP代码的问题。以前,我们只需运行测试套件,提交更改,然后在产品服务器上启动svn来“推送”更改。我想改变这一点,因为出于多种原因,我不太喜欢在生产服务器上使用svn

我正在考虑编写一个脚本,它可以执行以下操作:(将从svn服务器推出)

  • svn导出
  • Tar和scp将新代码添加到生产服务器
  • ssh到生产服务器并解压缩归档
显然,在处理/清理过程中会覆盖所有以前的文件


这将是迅速的。任何bug都可以很容易地修复、提交,然后将代码重新推出服务器(或恢复修订版等)。对该方法的任何评论/建议/批评都将不胜感激

它到底有什么作用,我用它做什么。它是为Rails应用程序设计的,但很容易定制,并且已经为您处理了大部分部件。它是用Ruby编写的,但很容易学习。

在我们的本地环境中,我设置了它,以便在代码提交到trunk(意味着经过测试的、稳定的代码,可以用于web部署)时,使用shell脚本作为提交后挂钩,通过FTP管理更改的文件


我确信有更好的管理解决方案,但这对我来说是最简单的。

“出于多种原因”-出于哪些特殊原因?主要是我不想将代码拉到生产服务器上,而只想以更可控的方式将其推出。主要与安全有关。还想避免在面向公众的服务器上使用.svn文件,因为上天禁止有人发现漏洞并获得访问权…
。svn
可以(应该)在
.htaccess关闭,只需一行。顺便说一句,我不明白为什么推比拉更容易控制。任务已经从上面下来了,所以让我们说我正在探索不同的解决方案=pOk;-)新的经验很好,m'kay;-)如果他们没有复杂的构建脚本(他们也没有),那么用需要设置和支持的Capistrano替换简单和琐事的原因是什么@zerkms取决于“构建脚本”的含义。您可以在部署之前、期间或之后为Cap编写脚本以执行任何操作。这是关键,因为通常您不需要使用简单的
svn up
,您通常需要清理tmp文件、迁移数据库或执行特定于系统的任务。Cap可以自动为您完成所有这些。@deceze:我的回答是基于OP提到的:它是关于“更多控制”和“安全”的。从这个角度来看,svn是最好的候选人;-)无论如何,我并不反对部署工具,我只是好奇为什么人们喜欢让事情变得比它应该的更复杂;-)@zerkms安全地设置“svn部署”的工作量大致相同,因为您的svn服务器需要以某种方式从外部世界安全地访问(显然取决于您的设置)。推式部署OTOH只需要远程登录到web服务器,这是您无论如何都需要的。在我尝试Cap之前,我也曾是“svn部署”的粉丝。现在我不回去了。:)关于保护svn服务器的好论点。