所以是的,你应该有第二个STAGE服务器。我所做的是将我的代码放入我的开发盒中的CVS,并在我继续进行常规提交。当我准备将版本推送到“STAGE”服务器时,我会浏览我想要STAGE的文件并将它们标记为STAGE:
cvs标签-F STAGE
然后我转到STAGE服务器并使用STAGE标志进行更新以获取STAGE版本的文件:
cvs up -r STAGE
这也将粘性标记设置为这些文件的“STAGE”,因此将来我可以在我的舞台服务器上进行更新时关闭STAGE标记:
cvs up
最后,当我在STAGE服务器上测试我的代码时,我使用rsync将其滚动到生产服务器...
我们有几个开发人员一起工作,因此保持稳定的STAGE版本可能会变得棘手。在这种情况下,如果我只对一个或两个文件进行小的更改,我将把它们单独scp到生产服务器上。
最后,为了确保我知道生产服务器上的内容,在将文件或文件发送到生产服务器后,我将我的舞台服务器上的所有文件标记为RELEASE,以及RELEASE20090713或当前日期。那样的话,我可以随时移动快照,如果需要我可以获得。请注意,这不会更新粘性标记,所以我的常规旧版本
cvs up
在舞台服务器上仍然获取最新的STAGE文件。
现在在你的情况下,就硬编码的网址而言...你已经知道......坏的坏了...所以你要去修复它们......但是你可以使用apache URL重写来重写STAGE上的URL与自定义TCP端口通信。
如果您有像cisco路由器这样的智能网络设备,则可以将其设置为为您的IP执行PAT(端口地址转换)。端口80可以转发到您的常规生产网络服务器,端口8080可以转发到您的STAGE服务器(其端口80)。然后,您所做的只是在STAGE服务器上执行URL重写,并将8080附加到它看到的所有主机名。现在,您的所有帖子和链接都将转到正确的STAGE服务器,您的apache配置也可以完全相同。