Wordpress登台环境

Gre*_*son 7 php wordpress staging

我为一家为制药行业提供网站的公司工作,在推动任何变更之前,我们经常需要获得法律批准.所以,我想将我们的大量工作迁移到CMS环境,特别是wordpress,但我们需要能够拥有一个临时环境.是否有可能不是发布页面而是将其发布到某人可以像链接作为站点一样浏览的登台环境.所以基本上有2个网站,一个上架一个?

Mar*_*ope 3

一般来说,这里的其他“答案”是正确的,还有 WordPress 的替代品,它们对临时环境和构建迁移有更好的内置支持。然而,建议的替代方案并不完全等同于 WordPress 平台,所以我认为最好回答手头的问题。

WordPress 本身不支持从两个不同的主机托管同一站点。核心依赖于存储在数据库内的绝对 URL,并且几乎用于核心逻辑的每个方面。这会导致许多多余的错误,例如与 SSL 访问相关的 500 个左右,因为它们试图动态地即时更改所有http://方案。https://

因此,当您托管dev.example.com并迁移到 staging.example.com 时,www.example.com每次切换主机时,您都必须对数据库导出进行非常仔细的搜索和替换操作。当您发现许多流行的 WordPress 插件将 URL 序列化为数据库中的值时,这会导致其他问题。因此,当您搜索并用 staging.example.com 替换 dev.example.com 时,包含原始值字符长度的序列化数据不再使用新的较长格式反序列化。一些核心贡献者认为,后一个问题的解决方案是仅设置与生产帐户具有相同字符数的暂存站点......

同样,他们还建议交换主机映射,并且在所有托管环境中仅使用 production.com URL。根据您的特定用例要求,如果您需要向异地客户端、不懂技术的用户(当然相对于懂技术的用户)提供访问权限,这可能不是一个有效的解决方案。

但 WordPress 本身还有许多很棒的功能,并且是一个适应性很强且功能强大的快速开发平台。因此,您可以扩展核心框架来完成您需要的大部分工作。当我遇到这种情况时,我必须制定一个适用于所有情况的解决方案。传统上,这个问题是通过根相对 URL 来解决的,它们在跨托管环境中工作,并且不会受到分段迁移中常见的方案更改、端口更改或子域交换实践的影响。

有了这个插件:http://wordpress.org/extend/plugins/root-relative-urls/ (有偏见?是的,我写了这个插件。)你会得到重要的根相对 URL 和动态主机,其中根相对 URL不起作用(如 rss feeds)。将站点迁移到不同的主机后剩下的就是将文件移到根目录wp-config.php之外www(WordPress 本身支持上一级。),这样您就可以在不同的服务器上维护不同的副本。或者,您也可以使用基本的 if 语句通过服务器名称来区分主机,并根据服务器定义关键的 WordPress 常量。最终,您的内容、代码和数据将无缝过渡。

需要注意的是,引用的插件需要设置对文件的写访问权限wp-config.php,从生产或公共访问服务器的安全角度来看,这是一种非常糟糕的做法。也许您可以在受限的暂存环境中轻松实现此功能,但随后您需要在生产转换中禁用并删除该插件。

长话短说,是的,您可以在多个主机环境中托管 WordPress。由于核心架构的原因,长期吹捧的解决方案非常针对特定情况且选项受到限制。但该框架足够灵活,足以克服核心赤字。鉴于核心开发人员不断花费大量精力来克服级联问题,这一核心设计决策可能会在未来的某个时候发生变化。但也有绝对 URL 宗教的虔诚捍卫者,他们将暂时保留这种做法。也许原生支持服务器迁移的不同平台(选择其中的任何一个,因为大多数都支持)现在对您来说是更好的选择。