WHM64 升级后无法访问 eximstats sqlite3 db

2023-12-01

WHM 64 升级后,无法访问 eximstat 数据库。 MySQL代码更改为PDO来访问sqlite3 db,如下:

$db = new PDO('sqlite:/var/cpanel/eximstats_db.sqlite3', DB_USER, DB_PASSWORD);

失败、延迟表都是空白的。事实上,在 var/cpanel 目录中创建了一个新的空白文件,而不是连接到 eximstats db。令人惊讶的是,CPanel:“查看发送摘要”全部正确获取信息,但我无法在驻留在域上的脚本中访问。

任何帮助是极大的赞赏。

Thanks!!


在与 cPanel 的出色支持的交谈中,我们发现了这一点:

这是 eximstats_db.sqlite3 表的权限问题:您尝试以非 root 用户身份访问数据库,但数据库由 root 用户拥有,并且只能由 root 用户写入。

理论上,您应该能够通过将 SQLITE3_OPEN_READONLY 标志传递给打开文件的调用来直接访问该文件,如下所述:

https://secure.php.net/manual/en/sqlite3.open.php

因此授予对 eximstats_db.sqlite3 表的读取权限(注意!有 3 个表):

-rw----r-- 1 root root 135168 Jun 10 06:06 eximstats_db.sqlite3
-rw----r-- 1 root root 32768 Jun 12 14:34 eximstats_db.sqlite3-shm
-rw----r-- 1 root root 1058512 Jun 12 14:34 eximstats_db.sqlite3-wal

并使用

$dbh = new SQLite3('/var/cpanel/eximstats_db.sqlite3',SQLITE3_OPEN_READONLY);

应该有效,但事实并非如此。这似乎是 PHP 中 SQlite3 库的一个限制:即使对于只读访问,它也希望锁定对文件的访问。所以你还需要给他们写权限:

-rw----rw- 1 root root 135168 Jun 10 06:06 eximstats_db.sqlite3
-rw----rw- 1 root root 32768 Jun 12 14:34 eximstats_db.sqlite3-shm
-rw----rw- 1 root root 1058512 Jun 12 14:34 eximstats_db.sqlite3-wal

就是这样。之后,您将看到延迟、失败和其他表。

(当然,在现实生活中,您可能想要创建一个组并仅向该组授予读写访问权限,而不是向所有人授予读写访问权限)。


如果您无法更改这些数据库文件的权限,那么我能看到的唯一解决方案是将文件复制到域,更改那里的权限,然后使用这些文件:

$target = '/var/cpanel/eximstats_db.sqlite3-shm';
$newfile = '/home/yourdomain/where/your/script/is/eximstats_db.sqlite3';
copy($target, $newfile);
chmod($newfile, 0777);
// same with all 3 files..
$dbh = new SQLite3('eximstats_db.sqlite3'); // not '/var/cpanel/eximstats_db.sqlite3'!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WHM64 升级后无法访问 eximstats sqlite3 db 的相关文章

  • 如何在没有引用的情况下复制对象?

    PHP5 OOP 有据可查对象通过引用传递 http php net manual en language oop5 references php默认情况下 如果这是默认的 在我看来 有一种非默认的方式可以在没有参考的情况下进行复制 如何
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • 如何在附加的 sqlite 数据库中创建外键?

    我正在尝试创建一个 sqlite3 数据库作为模拟生产环境的测试环境 由于生产的设置方式 表处于多个模式中 我已经在 DBIx Class 中设置了类 使用 schema gt storage gt dbh do将数据库与架构附加在一起 并
  • sqlite3从打印数据中删除括号

    我创建了一个脚本 用于查找数据库第一行中的最后一个值 import sqlite3 global SerialNum conn sqlite3 connect MyFirstDB db conn text factory str c con
  • “pdo_mysql”已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

    pdo mysql 已禁用 我无法启用它 我在 iMac 7 1 OSX 10 6 8 上安装了 MAMP v 3 0 4 在我的 phpinfo 页面上 我可以看到唯一启用的 PDO 是 sqlite 如果我查看 php 5 5 10 扩
  • 如何确定当前使用哪个网格选项

    我将 Bootstrap 3 用于使用 PHP 和 HTML 创建的网页 随着响应式网格和类的开启引导程序3您可以将多个类分配给一个 div 以根据当前屏幕尺寸定义不同的宽度 例如 div class col lg 3 col md 3 c
  • Flutter:将字符串转换为 Map

    我正在使用 SQFlite 在本地存储数据 我有一个表 其中有一个名为 json 的字段 该字段的类型为 TEXT 并存储转换为字符串的 json 例如 name Eduardo Age 23 性别男 到目前为止 一切正常 但随后我需要从数
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • 导入已经创建的sqlite数据库(xamarin)

    我正在使用 Xamarin 想知道如何导入我已经创建的 sqlite 数据库 到目前为止 我已将其添加到资产文件夹中 但不知道下一步从哪里开始 string localPath Path Combine System Environment
  • Android 中的 Sugar ORM:更新 SQLite 中保存的对象

    我是在 Android 上使用 SQLite 和 Sugar ORM 进行应用程序开发的新手 并尝试阅读 Sugar ORM 文档 但没有找到有关如何更新 SQLite 中保存的对象的任何信息 更改对象属性后还可以保存对象吗 就像是 Cus
  • 模拟/存根在 PHPUnit 中实现 arrayaccess 的类的对象

    这是我正在为其编写测试套件的类的构造函数 它扩展了 mysqli function construct Config c store config file this gt config c do mysqli constructor pa
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • UTF-8、PHP、Win7 - 现在是否有解决方案可以使用 php 在 Win 7 上保存 UTF-8 文件名?

    更新 只是为了不让您阅读所有内容 PHP 开头 7 1 0alpha2 在 Windows 上支持 UTF 8 文件名 感谢阿纳托尔 贝尔斯基 根据 stackoverflow 上的一些链接 我找到了部分答案 https stackover
  • 更改API数据输出的布局

    我是 API 集成和 PHP 的新手 我最近将 VIN 解码器集成到我的应用程序中 在输入框中输入车辆的 VIN 选择提交 然后就会显示 API 数据库中有关该车辆的所有信息 数据存储为关联数组 其中包含类别及其相应元素 例如 对于 VIN
  • PHP 中的多个插入查询[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个 php html 表单 它将结果插入到狗展数据库中 问题是 无论我做什么 我都会收到此错误 查询失败 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在 INSE
  • 合并 url 中的 2 个输入值

    我有这样的形式
  • 谷歌日历手表过期时间超过1个月怎么办?

    我将我的 CRM 系统与 Google 日历同步 为此 我要求push notifications从我的用户 Google 日历到我的系统 我已经成功创建了手表 并将过期时间设置为2030年 但是当我收到手表事件的响应时 它显示手表的过期时
  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西
  • 如何在 PHP 中从字符串类名实例化? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何创建返回方法名称的新实例 不幸的是我收到这个错误 错误 类名必须是有效的对象或字符串 这是我的代码 class Foo public f

随机推荐

  • 雅虎 API 集成?

    我必须将 yahoo api 集成到我的应用程序中 谁能为我提供相关步骤 由于我们已经集成了雅虎 我们从雅虎获得了一个令牌密钥 输入密钥后我们进入应用程序 在雅虎登录后是否有任何人可以直接进入应用程序 试试这个初学者链接 http deve
  • 如何枚举HDFS目录中的文件

    如何枚举HDFS目录中的文件 这是为了使用 Scala 枚举 Apache Spark 集群中的文件 我看到有 sc textfile 选项 但它也会读取内容 我只想读取文件名 我实际上尝试了 listStatus 但没有成功 得到下面的错
  • session_set_cookie_params() 函数的“安全”参数是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 PHP session set cookie params 我仅使用 HTTP 不是 HTTPS 我的服务器上未配置 SSL 安全 是否意味着 cookie 将仅通过 SSL 传输 或者也可以在 HT
  • 在使用 Selenium 进行自动化测试期间检查元素时,某些网页中的元素“id”会发生变化(非静态)。遇到这种情况该如何处理呢?

    我正在尝试使用带有 chrome 驱动程序的 SELENIUM 中的测试自动化来捕获下拉菜单字段 为什么使用 Chrome 浏览器检查元素时 某些网页中的元素 id 会发生变化 如何保持 id 静态而不改变 我遵循的步骤 当我检查网页中的元
  • 将 UIImage 移动到 UIImageView 中

    我有一个UIImageView 红色方块 将显示UIImage必须缩放 我可以接收大于或小于UIImageView 缩放后 显示的部分UIImage是它的中心 我需要的是显示蓝色方块中的图像部分 我该如何存档它 我只能获取图像尺寸 高度和宽
  • 在 Select 语句中使用存储过程的结果

    我有一个存储过程 它返回一个Dataset Table 我如何在一个存储过程中使用这个存储过程的结果SELECT陈述 我需要这样的东西 SELECT T1 FROM Dummy T0 INNER JOIN EXEC dbo SPGetRes
  • 我们不能在 Oracle 中使用 [specifier] 和 like 运算符吗?

    当在 oracle 中使用 LIKE 运算符来匹配任何字符时 我不能使用 说明符 例如 找出以 s 或 r 开头的客户姓名 因此我们不能将查询编写为 select from emp where customer LIKE sr ORACLE
  • 我的自定义 php 函数有问题

    好的 我正在尝试创建一个自定义函数 该函数将为最终用户回显 iframe 内的站点 url 该脚本必须检查用户是否已经看过该站点 如果已经看过 则不再显示该站点 而是从数据库等中获取另一个站点 URL 这是我到目前为止所想到的 functi
  • 使用 JSR303 进行 Spring MVC 日期格式验证

    我使用 Spring MVC 和 JSR303 来进行输入验证 我创建的表单有几个绑定到的日期字段Date支持表单的对象内的对象 我正在使用 JSR303 进行验证Date using Future 我也在用 DateTimeFormat
  • 如何在jmeter中解码base 64格式?

    有谁知道在 JMeter 中解码 Base 64 格式字符串的解决方案 我必须解码响应 但我不想重新发明轮子 我必须自己编写代码吗 希望不是 Thanks 你的解决方案非常好 但是 您可以使用 Beanshell 后处理器并将以前的采样器响
  • 如何在 React Native 中模糊文本

    问题很简单 我有一个带有文本组件的视图 我只是想让这段文字最初变得模糊 我看到的在 React Native 中模糊某些内容的唯一解决方案是通过 react native blur 来获取图像 How can we blur a TextR
  • NHibernate IList 列表

    您好 我正在尝试返回建筑域的集合 private long id private string buildingName private IList
  • SQL Server 代理作业在作业历史记录中记录自定义消息

    是否可以在作业历史消息中记录来自 SQL Server 代理作业的自定义消息 如果不是 做这样的事情最好的方法是什么 对于 T SQL 作业步骤 您可以使用print陈述 对于 CmdExec 步骤 请使用Console Writeline
  • 调用 Socket.Receive 后,C# Socket.Connected 属性更改为 false

    int readCount byte buffer new byte 128 SocketError socketError TcpClient tcpClient tcpListener AcceptTcpClient tcpClient
  • 是否可以在 CSS 中设置 JavaFX 静态属性?

    使用 BorderPanel alignment 的示例 FXML 静态属性
  • 是否可以有条件地分配@RequestParam中的Required值?

    我的控制器中有 2 个 RequestParam 参数 我想根据条件设置两个参数的必需值 条件可能是这样的 如果传递了一个参数 则必须传递另一个参数 因此将 other 的 required 设置为 true 反之亦然 否则 如果没有传递任
  • 将新文件夹添加到某个位置时触发脚本

    我正在自动化一个流程 并且已经为此制作了一个 powershell 脚本 现在我需要制作一些东西 每次将新文件夹添加到特定位置 即删除新版本 时都会调用该脚本 我应该为此使用什么 WCF 太多了吗 如果没有 有任何线索吗 任何有用的链接 或
  • 使用 CMDeviceMotion 获取绝对旋转?

    我正在使用 Sprite Kit 构建一个简单的游戏 屏幕不会旋转 但我想知道用户握持手机的角度以了解游戏机制 我想要获得的值可以使用加速度计 x y 轻松检索 但我发现这是不可靠的 所以我试图用以下方法存档更好的结果CMDeviceMot
  • vbscript MsgBox() 的 Javascript 等效函数

    我需要将以下函数转换为javascript MsgBox Are you a programmer 0 Please answer 我想我可以用confirm Are you a programmer 但我想知道如何在那里添加按钮顺序 Ja
  • WHM64 升级后无法访问 eximstats sqlite3 db

    WHM 64 升级后 无法访问 eximstat 数据库 MySQL代码更改为PDO来访问sqlite3 db 如下 db new PDO sqlite var cpanel eximstats db sqlite3 DB USER DB