我在一个小型电子商务网站上使用 wordpress(不用于电子商务,只用于首页和其他一些内容)。我们想在第二台服务器上设置网站的完整副本,然后将 DNS 切换到新服务器的 IP 地址。
当然,在切换之前,我们想测试一下新的服务器,更新主题等等。
我复制了软件和数据库,一开始一切似乎都还好。只需使用 IP 地址即可访问新服务器,因此它类似于 http:// 47.48.147.148/mysite.com/,并使用 apache2.conf 中的别名(这是在 Ubuntu 上)将其重定向到 /home/mysite.com/wordpress/。
但是,许多链接都指向 www.mysite.com/[不管链接是什么]。我尝试登录后端来修复这个问题,发现甚至管理员登录都会重定向到真正的网站。因此,转到 http://47.48.147.148/wordpress/wp-login.php 会将我发送到登录页面,当我登录时,它会将我带到 www.mysite.com/wp-admin,即已登录。
所以我感觉我在这里犯了一些基本的战略错误。我们的站点很小,一台服务器就足够了(数据库和代码)。我只想能够设置新的操作系统、数据库软件、博客和电子商务软件等,然后将其切换。我以为在第二台服务器上设置所有内容,并将 DNS 注册切换到新的 IP 地址就可以做到这一点(不同的客户可能不会立即获得新的 IP 地址,但在一天左右的时间内他们都会获得,而且无论如何没有人会看到一个尚未准备好的站点)。
那么,实现这一目标的更好策略是什么?我不想在生产服务器上动态升级诸如操作系统之类的东西,我希望能够使用浏览器测试新设置,其中包含真实数据,这就是我从当前生产服务器复制代码和数据库的原因。在小型商店环境中,处理这些问题的最佳总体策略是什么?是否有一个 Apache 设置可以实现这一点,或者是否有其他方法可以尽可能真实地测试新设置,而无需动态更改生产服务器?
答案1
每当我在处理那些将要投入生产的机器时,如果名称与现在不同,我就会大量使用通过主机文件操作的谎言。
唯一的问题是,如果您开始使用证书,证书中的 IP / 名称组合可能不匹配。我还看到过一些不会受到这种欺骗的授权软件。
在机器上,确保在切换时 /etc/hosts 中的条目准确反映实际情况。然后,当情况发生变化时,请确保删除主机文件条目,因为将来情况会发生变化,并且您不希望主机文件搞砸您,同时给您一个错误的负面错误指示。
答案2
你不能只修改工作站的 /etc/hosts 文件并将域指向测试服务器吗?你根本不需要触及开发服务器的配置。缺点是修改 hosts 文件非常烦人,可能会导致严重错误(在错误的服务器上执行某些操作)。