PHP 时区数据库损坏错误

2024-04-06

我有一个 WordPress 网站,今天突然停止工作了。当我查看日志时,我看到错误:

[错误] [客户端 50.78.108.177] PHP 致命错误:strtotime():时区 数据库已损坏 - 这应该never happen!

在谷歌上阅读后,有人说他们发现了一个权限问题/usr/share/zoneinfo。我尝试将权限更改为 777、775、770,但仍然不断收到相同的错误。我在 Ubuntu 10.04.3 LTS 上运行 php PHP 5.3.2。任何建议或推荐都会有帮助。如果所有其他方法都失败了,我将尝试降级到 php 的早期版本,但在这样做之前我想尝试其他事情。

谢谢, 蒂姆尼特

Update
以防万一有帮助:错误指向strtotime在下面的函数中

function mysql2date( $dateformatstring, $mysqlstring, $translate = true ) {
    $m = $mysqlstring;
    if ( empty( $m ) )
            return false;

    if ( 'G' == $dateformatstring )
            return strtotime( $m . ' +0000' );

    $i = strtotime( $m );

    if ( 'U' == $dateformatstring )
            return $i;

    if ( $translate )
            return date_i18n( $dateformatstring, $i );
    else
            return date( $dateformatstring, $i );
}

更新#2:
现在我已经通过简单地使用上面的函数解决了这个问题return false;不执行任何操作。但是我仍然没有弄清楚问题的根本原因。

更新#3:

var_dump($dateformatstring)

字符串(5) “d.m.y” 字符串(1) “m” 字符串(5) “d.m.y” 字符串(1) “m” 字符串(5)“d.m.y”字符串(1)“m”

var_dump($mysqlstring)

字符串(19)“2011-10-20 05:35:01”字符串(19)“2011-10-20 05:35:01” 字符串(19)“2011-10-20 05:25:22”字符串(19)“2011-10-20 05:25:22” 字符串(19)“2011-10-19 05:10:06”字符串(19)“2011-10-19 05:10:06”

update#4:
还有另一个代码片段正在生成以下错误日志:

PHP 致命错误:date():时区数据库已损坏 - 这应该never发生!在 /srv/www/motionthink.com/public_html/wp-admin/includes/class-wp-filesystem-direct.php 在第346行,推荐人: wp_root_directory/wp-admin/plugins.php?plugin_status=升级

309         function dirlist($path, $include_hidden = true, $recursive = false) {
  310                 if ( $this->is_file($path) ) {
  311                         $limit_file = basename($path);
  312                         $path = dirname($path);
  313                 } else {
  314                         $limit_file = false;
  315                 }
  316 
  317                 if ( ! $this->is_dir($path) )
  318                         return false;
  319 
  320                 $dir = @dir($path);
  321                 if ( ! $dir )
  322                         return false;
  323 
  324                 $ret = array();
  325 
  326                 while (false !== ($entry = $dir->read()) ) {
  327                         $struc = array();
  328                         $struc['name'] = $entry;
  329 
  330                         if ( '.' == $struc['name'] || '..' == $struc['name'] )
  331                                 continue;
  332 
  333                         if ( ! $include_hidden && '.' == $struc['name'][0] )
  334                                 continue;
  335 
  336                         if ( $limit_file && $struc['name'] != $limit_file)
  337                                 continue;
  338 
  339                         $struc['perms']         = $this->gethchmod($path.'/'.$entry);
  340                         $struc['permsn']  = $this->getnumchmodfromh($struc['perms']);
  341                         $struc['number']        = false;
  342                         $struc['owner']         = $this->owner($path.'/'.$entry);
  343                         $struc['group']         = $this->group($path.'/'.$entry);
  344                         $struc['size']          = $this->size($path.'/'.$entry);
  345                         $struc['lastmodunix']= $this->mtime($path.'/'.$entry);
  346                         $struc['lastmod']   = date('M j',$struc['lastmodunix']);
  347                         $struc['time']          = date('h:i:s',$struc['lastmodunix']);
  348                  $struc['type']          = $this->is_dir($path.'/'.$entry) ?   'd:'f';
  349 

更新#5:
做一个php -i | fgrep -i date returns

构建日期 => 2011 年 12 月 13 日 18:43:02

date
date/time support => enabled
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => no value => no value

然后我编辑 php.ini 文件将时区设置为“美国/洛杉矶”并得到此输出

date/time support => enabled
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => America/Los_Angeles => America/Los_Angeles

然后我重新启动了apache2。我仍然收到错误


在 chroot 模式下使用 php-fpm 时也会出现此问题,这种情况下的解决方案是在 chroot 目录中创建类似 /usr/share/zoneinfo/Europe 的内容,然后将 TZ 文件复制到其中,例如伦敦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 时区数据库损坏错误 的相关文章

  • 如何导出从 HTML DOM 解析器检索到的所有图像?

    我想要 使用从我的网站获取所有图像PHP 简单 HTML DOM 解析器 http simplehtmldom sourceforge net 并将它们全部导出到我的桌面ALL立刻 Not右键单击保存或屏幕截图 OPTIONAL 保存所有h
  • 条件与 eval {php} [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 然后我得到
  • 更新 Doctrine 后 Symfony 中的“ObjectManager 和 EntityManagerInterface 之间的兼容性”是什么?

    在我的 Symfony 项目中尝试更新 composer update 后出现错误 我寻找解决方案 发现有必要修改实体和构造函数中的使用和类型提示 我已经完成了 然后 我重新启动更新 但出现了不同的错误 并且更新未完全完成 结果 我的网站已
  • 在 Windows 上使用 PHP 进行分叉/线程的最佳方法是什么?

    我有一个 php 脚本 用于检查许多 数千个 网站上的更新 有时 随着站点数量的增加 情况会更频繁 我在更新其中一个站点时会遇到执行超时 整个脚本都会付诸东流 我能想到的最好的想法是分叉每个更新 所以如果它死了 整体更新就会继续 从我收集到
  • 如何使用mysqli准备好的语句?

    我正在尝试准备好的语句 但下面的代码不起作用 我收到错误 致命错误 在非对象上调用成员函数execute var www prepared php 第 12 行
  • CSV 损坏,如何修复?

    我正在尝试解析 CSV 我想将它放入数据库或只是用 JavaScript 解析它 但由于语法损坏 任何一种方法都会失败 我的整个 CSV 文件在这里 https gist github com 1023560 https gist gith
  • PHP cURL:CURLOPT_CONNECTTIMEOUT 与 CURLOPT_TIMEOUT

    PHP 有以下两个与超时相关的选项 CURLOPT CONNECTTIMEOUT and CURLOPT TIMEOUT PHP 网站上的描述有点模糊 有什么不同 使用现实世界的示例 假设您通过 cURL 将 GET 变量发送到 URL 并
  • 如何在 PHP 中解析和处理 HTML/XML?

    如何解析 HTML XML 并从中提取信息 Answer recommended by PHP collectives php Collective 原生 XML 扩展 我更喜欢使用其中之一原生 XML 扩展 https php net m
  • Docker 错误:无法找到包 git

    我正在使用图像nginx这是基于dockerfile ubuntu 连接到 docker 容器的 shell docker exec it
  • 如何在 PHP 中运行 ffmpeg 命令

    我需要在 PHP 中运行 ffmpeg 命令 但是 php ffmpeg 不再支持最新版本并且已经过时 我可以知道在网络文件中运行 ffmpeg 命令的替代方法吗 PHP Javascript jQuery 我尝试exec and shel
  • 使用 preg_split 分割和弦和单词

    我正在编写一小段播放处理歌曲标签的代码 但我遇到了一个问题 我需要解析每首歌曲选项卡行并将其拆分以获取大块chords一方面 并 且words在另一个 每个块就像 line chunk array 0 gt part of line con
  • 具有多个 FROM 表的 TableGateway

    我想做一个简单的INNER JOINZend2 中的两个表之间 具体来说 我想在 Zend2 中这样做 SELECT FROM foo bar WHERE foo foreign id bar id 我有一个FooTable class F
  • 正则表达式匹配7-12位数字;可能包含空格或连字符

    我已经尝试解决 PHP 正则表达式问题有一段时间了 但我就是无法完全完成 我需要编写一个匹配 7 到 12 位数字 0 9 的正则表达式 并且可以选择在相邻数字之间有一个连字符或一个空格 这就是我到目前为止所拥有的 match1 preg
  • 计算链接上的点击次数(不带 onclick)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有诸如此类的链接 a href h
  • PHP 按值合并数组以获得 2 个不同的数组值

    我尝试将两个不同的数组合并为一个数组 有人可以帮我吗 我有这样的数组 0 Array 2 rank 579 id 1 1 Array 4 rank 251 id 2 0 Array 2 size S rank 251 1 Array 15
  • 使用 php 和 jquery 的简单彗星示例

    谁能给我一个使用 PHP 的彗星技术的简单好例子 我只需要一个使用持久 HTTP 连接或类似连接的示例 我不想使用轮询技术 因为我已经设置了类似的东西 并且不仅难以使用和管理它的大量资源 另外我使用的是 IIS7 而不是 Apache 一个
  • GoDaddy 服务器上的 CodeIgniter 和 URI 问题

    我似乎无法在 GoDaddy 上正确设置 CodeIgniter 我尝试在 wecome 控制器内创建一个新函数 但我无法在任何地方访问它 http domain com test No response lt why doesn t th
  • OpenCV 在使用 anaconda 的 Linux 上无法与 python 正常工作。收到 cv2.imshow() 未实现的错误

    这就是我得到的确切错误 我的操作系统是 Ubuntu 16 10 OpenCV 错误 未指定错误 该功能未实现 使用 Windows GTK 2 x 或 Carbon 支持重新构建库 如果您使用的是 Ubuntu 或 Debian 请安装
  • 总小时数无法从 Android 插入 MySQL

    我使用以下公式获得总小时数 public void updateTotalHours int a SplitTime objMyCustomBaseAdapter getFistTime int b SplitTime objMyCusto
  • 在 PHP 中获取日期和数字工作日

    我正在用 PHP 开发一个应用程序 我需要使用日期和工作日的数字表示 我尝试过以下方法 today date Y m d number date N strtotime today echo Today today weekday numb

随机推荐

  • Gatsby 未生成正确的静态 HTML 文件

    我正在开发一个基于盖茨比的网站 到目前为止该网站的开发进展顺利 但在构建生产时遇到了一个问题 即我们在各个页面索引文件中没有获得任何静态 html 相反 Gatsby 似乎将尝试从 javascript 注入页面 这与我们的预期相反 我看到
  • Pandas.read_excel 读取 xlsx 文件集时出现 KeyError

    我使用 Anaconda shell 进行数据分析 上传到pandas一堆excel文件 25个文件 在此文件上https www dropbox com s 16ea1cw6k63i16p Newdata zip dl 0 https w
  • 添加两个具有不同回调的谷歌地图[重复]

    这个问题在这里已经有答案了 我的页面上有两个谷歌地图容器 第一个 id map 只是一个普通的 显示地图 第二个 id map2 是一个搜索地图 用户在其中键入输入 地图将刷新到用户键入的位置 这些地图使用相同的 api 密钥 但它们的回调
  • Request.pipe() JPEG 流

    我正在开发一个作为 ZoneMinder 中间件的 Nodejs 应用程序 简而言之 我的目标是屏蔽所有 ZoneMinder api 以便客户端不知道我是否使用 ZM 一切都很好 但有一件事让我烦恼 ZM 中有一个流 api 它提供流 J
  • PyGame:文本未出现

    我正在遵循教程 我试图让我的文本出现在屏幕上 这是我的代码 但文本不会出现 from future import division import math import sys import pygame class MyGame obje
  • 如何使用 PHP 安全地将 JSON 数据写入文件

    我有用于编辑图像的 HTML 表单 所有数据都存储在 JSON 中 当我更改当前图像时 我想通过 PHP 脚本将更改保存到文本文件中 如果我返回到上一个图像 该配置将再次从该文件发送到表单 我的问题是 如何安全地写入 读取此类数据 在哪里以
  • 在 WooCommerce 主页上隐藏“缺货”产品

    我不想在主页上显示 缺货 产品 我尝试了一些 WooCommerce 挂钩和过滤器来更改产品查询 但它不起作用 我还在 woocommerce 设置区域中检查了 隐藏缺货 但产品仍然出现 我能得到线索吗 发生了什么 我尝试使用此过滤器挂钩来
  • C#:正确使用 Wea​​kReference IsAlive 属性

    正如所解释的here https msdn microsoft com en us library system weakreference isalive v vs 110 aspx if WeakReference s IsAlive返
  • Python:在重新分配外部函数后,闭包如何继续存在?

    我学习了 Python 中的闭包 并且对这个概念有了足够的了解 在 IDLE 中闲逛时 我想到了如果我重新分配封闭函数然后尝试调用封闭函数会发生什么 gt gt gt def outer function hello message hel
  • 关于http://stackoverflow.com/questions/2381560/how-to-group-a-3x3-grid-of-radio-buttons

    我尝试使用标题中显示的网站上作为第一个答案提供的代码 尽管我尝试修改它 但我无法使其工作 问题是 当我检查第一个单选按钮以外的单选按钮时 它们都会保持选中状态 问题是 什么时候调用 addView 方法 另外 这是我的代码版本 我希望有人能
  • 使用 argparse 创建互包参数

    我想构建一个程序 它有 2 个相互包含的参数和 2 个不依赖于前两个的参数 像这样的东西 consume count n show clear 其中 consume 和 count 相互依赖 即 没有 consume count 将抛出错误
  • iPhone单元测试:调用自定义代码时未找到符号

    我正在尝试为我的 iPhone 应用程序设置单元测试 我跟着苹果单元测试文档 http developer apple com iphone library documentation Xcode Conceptual iphone dev
  • 如何通过在每个选项卡上执行一些命令来在 mac os Lion 终端上自动打开多个选项卡?

    我需要自动打开带有多个选项卡的终端 并需要在其上执行多个命令 我知道在ubuntu下怎么做 但它不适用于 mac os 任何想法 gnome terminal tab e tail f somefile tab e some other c
  • ListView 项目添加事件

    当将项目添加到 listView 时 是否有我可以使用的事件 不这么认为 我用过这个列表视图替换 http www codeproject com KB list ObjectListView aspx在过去 我相当确定它有一个添加项目时的
  • Android中从中心点缩放位图以获得放大效果

    我试图在 Android 中从中心点放大位图以实现缩放效果 但没有成功 我的代码是 float scaleWidth float width i 5 width float scaleHeight float height i 5 heig
  • 如何在 Swift 中通过部分标签文本搜索来定位 XCUIElement?

    我一直在使用这种方法定位 XCUIElements app staticTexts Full Label Text 但是如果我只知道标签文本的一部分怎么办 部分标签文本是动态生成的 例如 Item 1 Item 2 等 因此我想通过查找包含
  • 生成数据框中7列的所有组合并添加相应的行以生成新列

    我有一个类似于下面的数据框 Wave A B C 340 77 70 15 341 80 73 15 342 83 76 16 343 86 78 17 我想生成包含现有列的所有可能组合的列 我在这里显示了 3 列 但在我的实际数据中 我有
  • 查找与 colorBrewer 调色板接近的颜色的颜色名称

    我想使用R包SNA来做社交网络分析 SNA 仅使用 R 颜色名称 文本名称 为元素着色 我想从 ColorBrewer 调色板 set3 中找到与 R 中的颜色名称接近的匹配项 RGB 空间中没有太多精确匹配 require RColorB
  • 这个错误意味着什么以及如何解决它?

    我正在尝试在 android 中使用 NDK 构建 C 代码 我有一个有参数的方法vector lt vector
  • PHP 时区数据库损坏错误

    我有一个 WordPress 网站 今天突然停止工作了 当我查看日志时 我看到错误 错误 客户端 50 78 108 177 PHP 致命错误 strtotime 时区 数据库已损坏 这应该never happen 在谷歌上阅读后 有人说他