我刚刚启动并运行了我的生产站点。我还有很多工作要做,而且我现在已经意识到开发服务器的需求,然后再将实时更改到生产网站(与用户一起) - 显然......
这个帖子(以及Stack上的更多内容)描述了我: Best/Better/Optimal way to setup a Staging/Development server
无论如何......阅读这些主题有时令人困惑,包括所有抛出的术语,以及我较小的CentOS / Apache知识。
我的目标是:
我担心的是:
我希望有人可以链接到我正在思考的伟大指南(这没有想象中的任何想法) - 或某种建议/等等...我在圈子里跑尝试不同的SVN和progarms来管理他们等等......
我是唯一一个正在开发的人,只是想要一个可重复的,值得信赖的解决方案,这个解决方案可以为我工作,而不会让我的生活太悲惨,试图让它设置好(并保持设置)。
非常感谢。
答案 0 :(得分:3)
如果您能够在生产服务器上创建一个临时子域,那么我将如何(并且做)处理它:
在您的开发机器上开发,将代码存储在VCS中。我使用颠覆,但你可能会找到另一个你喜欢的。进行更改后,您需要检查代码。
在生产服务器上,您在Apache VirtualHost中创建一个子域,该子域与生产VirtualHost相同但隔离。将代码从VCS签出到暂存子域区域。进行更改后,您可以从VCS运行更新,该更新仅删除已更改的文件。暂存和生产共享相同的数据集,或者每个数据集都有一个单独的数据库。
使用子域而不仅仅是另一个目录的原因是它使您可以使用相同的DocumentRoot进行分段和生产。如果您使用staging.example.com
之类的东西,也很容易识别您的位置。
当您确定一切正常时,您可以在生产端运行VCS更新以使代码更新。
确保您已指示Apache禁止访问VCS元数据目录(.svn,.git,等等)非常重要。
<强>附录强>
禁止访问.svn
目录使用重写规则,如:
RewriteEngine on
RewriteRule .*\.svn/.* - [F]
这将发送403。你也可以将它们重定向到主页,使它们显得不那么明显。
答案 1 :(得分:1)
就担忧#1而言,请记住,即使StackOverflow在人们使用它时也会定期关闭以进行维护。只需提供一个很好的机制,让您将网站切换到维护模式(并退出),你会没事的。
答案 2 :(得分:1)
谢谢大家的提示/提示/等等......
我终于找到了满足我需求的完美解决方案,SpringLoops ...... http://www.springloops.com/v2/
它管理我的SVN(我使用Tortoise SVN) - 并且实际上将更改部署到我的两个站点:staging和production。
我强烈推荐它,到目前为止工作得非常好。
谢谢!
答案 3 :(得分:0)
你需要一个版本控制系统,比如Subversion,Git或Mercurial。
更改文件时,将这些更改提交到存储库。这会记录您所做的所有更改,如果事实证明您做了一些愚蠢的事情,则可以撤消它们。它还可以让您恢复意外删除或丢失的文件。
最重要的是,它使部署更新变得像在生产服务器上键入'git update'或'svn update'一样简单。只有已更改的文件才会被转移并放置到位。
无论问题被重新询问多少次,您都会得到这个建议。你需要版本控制。