我正在尝试将我的旧服务器(服务器 1)从提供商 1 迁移到提供商 2 的新服务器(服务器 B),并尽可能保持该过程的无缝衔接。
我在迁移的测试文件夹中注意到的第一件事是,服务器 2 不支持几个 PHP 函数 - 例如 apache_request_headers()。这可能是因为 PHP 在服务器 2 上没有编译为 Apache 模块。可能还有其他差异会导致致命的脚本错误,但我尚未发现。两台服务器都运行带有 WHM 的 CentOS。有没有办法将新服务器配置为与旧服务器完全相同,而无需进行这种临时检查?
答案1
如果您只谈论 Apache 和 PHP,那么只需确保版本相同并复制配置文件即可。如果缺少任何 Apache 或 PHP 模块/扩展,请事先安装它们。
您可以使用它phpinfo()
来显示当前的 PHP 配置和活动扩展。
同样,如果您将 PHP 作为模块运行,则可以使用apache_get_modules()
列出活动的 Apache 模块。否则,请尝试:
apache2 -t -D DUMP_MODULES
或者
httpd -M
上述命令列出了所有处于活动状态的模块。要检查哪些静态模块已启用,请使用:
httpd -l
答案2
如果您打算经常这样做,Puppet、Cfengine 或 Bcfg2 等工具可以帮助您做到这一点。但它们付出的努力超过了一次迁移的价值,您应该能够仅从您保留的备份中完成此操作。而且您应该已经练习过从这些备份中恢复,所以您现在不需要问这个问题。
几周前,硬件出现故障,我们将 Ubuntu 9.04 网络服务器迁移到 Ubuntu 10.04。这是对我们的备份策略的一次很好的测试,我们了解到,我们可能应该备份一些额外的东西(例如,运行备份的脚本,这样我们就有了一种记录下来的恢复方法)。
但本质上,您需要当前机器上安装的所有软件的列表、数据库的转储(启用 create-databases 选项!)以及 /etc、/var/www、/home 和您当前需要的任何其他内容的备份。