部署Web应用程序
问题描述:
我们使用SVN。在生产服务器上执行“svn up”是不是一个好主意?如果是这样,我们该如何回滚?什么被认为是部署网络应用程序的最佳实践(我们的应用程序是在PHP中)。部署Web应用程序
老板想要使用FTP。
答
如果你的应用程序不是超级巨大的,那么svn update或ftp到一个新目录。完成后,重命名旧目录并重命名新目录。
或者,只是有一个符号链接,并将其更改为新的目录。
如果必须回滚,请将其更改回去,如果不是,请在再次更新时删除旧副本。
如果你有一个巨大的应用程序,你可以做同样的事情,但有两个副本,并使用RSYNC复制到新的树。
答
从存储库更新测试服务器,对其进行标记并将应用程序树打包到测试服务器上。一旦通过测试,请将该软件包部署到生产服务器上。焦油是一种合理的包装工具。
在生产服务器上解包到新目录中,然后交换目录效果很好。您应该重新加载服务器作为交换的一部分。回滚只是要求颠倒目录交换。
数据库更改比较困难。我尝试确保更改与当前版本和以前的版本兼容。需要在后续版本上完成一些更改(新的NOT NULL约束,删除的列等)。数据库内容更改更加困难。
特定于环境的数据需要成为Web服务器配置的一部分,而不是应用程序配置。如果环境具有不同的数据库,则某些数据可以存储在数据库中。