升级到PHP8时出现500错误

 
  • ES
  • JA
  • RU
  • PT
  • DE
  • FR
  • EN
  • 在去年11月 PHP 8登陆了。它宣布了在性能、速度和安全方面的一些改进。

    像任何一个好的修补者一样,我急于升级到 PHP 8从7.4,特别是7.4.16,现在服务器上运行的版本。

    Plof!一个漂亮的500错误在迎接我,并破坏了整个网站。

    升级到PHP8时出现500错误

    WordPress在升级到PHP 8时出现500错误

    没有网址可以解决。 我做了典型测试禁用所有的插件并使用默认模板。

    错误500不会消失。我很震惊,但我通过了这件事,确信现在更新还为时过早,正如他们所建议的,最好的办法是等待所有的插件和模板作者更新他们的代码,使其与PHP 8兼容。

    差不多七个月后,我再次尝试,500错误仍然存在。第一个线索是,这个错误的源头只在这个博客,因为在我在同一台服务器上安装的另外两个WordPress中,一切都工作正常。

    因为500错误可能因为很多原因而出现。下一个合乎逻辑的步骤是调出错误日志,试图找出问题所在。我得到一串这样的警告。

    PHP警告。Use of undefined constant minor – assumed ‘minor’ (this will throw an Error in a future version of PHP) in /home/xxxxxx/public_html/blog/wp-config.php on line 11

    也就是说,这个常量应该有引号在周围。我去看wp-config.php,的确,未成年人在那一行没有引号。

    define(’WP_AUTO_UPDATE_CORE’, minor)。

    在WordPress论坛上搜索,我发现很多人都有这样的问题,由于与某个插件或模板的冲突而升级到旧版本的PHP。

    不能排除这个问题与WordPress的安装有关,因为它有一些缺陷,正如我在发送的票据中所告诉我的那样 LucusHost.

    在他们收到的一些答案中,他们说要解决这个问题,只要在‘minor’上加上倒数的逗号就可以了,所以试试吧,这就是我正在做的。

    define (‘WP_AUTO_UPDATE_CORE’, ‘minor’);

    wp_auto_update_core允许你控制WordPress核心的次要、主要和开发版本的更新。这个常量可以用几种方式定义。移除这一行不是一个好主意。

    #禁用所有核心更新。

    define( ‘WP_AUTO_UPDATE_CORE’, false );

    #启用所有更新,包括小更新和大更新。

    define( ‘WP_AUTO_UPDATE_CORE’, true );

    # 启用小更新。

    define( ‘WP_AUTO_UPDATE_CORE’, ‘minor’);

    好消息和坏消息

    好消息是,现在,运行PHP8,500错误已经消失了。乍一看一切都很正常,无论是插件还是帖子。坏消息是,索引被破坏了,看起来像这样。

    升级到PHP8时出现500错误

    我决定首先攻击 帖子模板 Elementor Pro 以防建造者留下一些隐藏的垃圾,但在仔细检查并完全重做之后,我已经排除了错误来自那里的可能性。

    现在我还在测试环境中阐述模板(GeneratePress Premium)在一个测试环境中,至少我知道它在哪里出了问题,但主要是我在WordPress中寻找,这是我认为问题的关键所在,一些陈旧的代码被拖了进来,一些过滤器被油脂堵塞了,或者其他什么:P。

    我把这个说明留在这里,希望有人遇到过类似的问题,并且对我有帮助,或者我在这里写的东西对你有帮助,或者你对WP有一定的了解,可以提供一些更多的线索来解决它。一旦我找到明确的修复方法和可能的解释,我将更新这个帖子。

    相关的。 WordPress和PHP8.0.变 化、发展和其他问题的清单

    阅读 完整的升级文件


    Suscríbete por email para recibir las viñetas y los artículos completos y sin publicidad

    Artículos relacionados