我们有三台具有相同WordPress站点的服务器--一个Live、一个Beta版本和一个Kiosk版本(用于iPad kiosk的站点的有限版本)。Beta站点是从beta分支GitHub上部署的,而Live站点都是从master分支部署的。站点之间的任何功能差异都由环境变量控制,除此之外,它们共享相同的代码。
wp-content/uploads文件夹在站点的所有三个版本之间共享,使用安装的Amazon文件系统(由于插件冲突无法使用S3 )。问题就在这里。
Live和Kiosk服务器共享相同的RDS数据库,因此它们的媒体库总是同步的。但是,Beta服务器使用自己的单独数据库进行测试--由于WP媒体库对象存储在DB中,这将导致以下问题:
这没什么不对的,这只是Wordpress的工作方式。我一直通过使用"Add From Server“插件来规避这个问题,这个插件允许我手动保持媒体库的同步--但是这将是很好的自动化。
因此,我认为以下任何一种解决方案都会奏效:
wp-content/uploads文件夹的内容自动更新所有3台服务器上的媒体库的方法,它也足够聪明,可以忽略缩略图版本(不幸的是,"Add From Server“插件做不到这一点,所以当我尝试时,我得到了无数的”缩略图“,如果有道理的话)以前有没有人在类似的环境下工作过?对于我提出的解决方案中的任何一个,或者更好的解决方案,有什么想法吗?
发布于 2018-05-29 09:11:55
至于开发/暂存环境,我通常将rsync与crontab或詹金斯结合使用,并在每次使用产品db的转储构建阶段时都将复制的媒体文件夹与wp-content/uploads进行符号链接。
这还将为您提供在另一台服务器上自动备份db和media文件夹的好处。
我通常建议不要通过更改beta/dev环境来更新活动数据库,因为这通常违背了这种环境的目的。
关于保持kiosk和生产同步的问题,插件WPSiteSync看起来很有希望。我还没有试过它在生产中,但它应该符合您的要求。
https://stackoverflow.com/questions/48993455
复制相似问题