gpt4 book ai didi

php - Wordpress 暂存环境

转载 作者:可可西里 更新时间:2023-11-01 12:53:40 25 4
gpt4 key购买 nike

我在一家为制药行业做网站的公司工作,在我们进行任何更改之前,我们经常需要获得法律批准。所以,我想将我们的很多工作迁移到 CMS 环境,特别是 wordpress,但我们需要能够拥有一个临时环境。是否可以不发布页面而将其发布到有人可以使用链接作为站点浏览的登台环境。所以基本上有2个站点,一个登台一个直播?

最佳答案

一般来说,上面的“答案”是正确的,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 网址。根据您的特定用例要求,如果您需要提供对异地客户端、技术文盲用户(当然是技术文盲用户)的访问权限,这可能不是一个有效的解决方案。

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

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

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

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

关于php - Wordpress 暂存环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com