【问题标题】:Cron Job on cPanel not runningcPanel 上的 Cron 作业未运行
【发布时间】:2021-01-18 03:34:59
【问题描述】:

我正在尝试在 cPanel 中运行 cronjob,但出现以下错误:

致命错误:未捕获的错误:在 /home/example/public_html/new_facebook_csv/csv_generator1.php:180 中找不到类“mysqli”

如果使用链接 example.com/new_facebook_csv/csv_generator1.php 通过浏览器运行该文件,我会得到正确的结果,没有任何错误,但如果我尝试使用 cron 作业运行它,我会收到错误“Class 'mysqli '未找到”。

我正在运行的 cron 作业如下:

php /home/example/public_html/new_facebook_csv/csv_generator1.php > /home/example/public_html/new_facebook_csv/facebook.log

这是我在 cron 作业后得到的日志:

X-Powered-By: PHP/7.3.22
Content-type: text/html; charset=UTF-8

<br />
<b>Fatal error</b>:  Uncaught Error: Class 'mysqli' not found in /home/example/public_html/new_facebook_csv/csv_generator1.php:180
Stack trace:
#0 {main}
  thrown in <b>/home/example/public_html/new_facebook_csv/csv_generator1.php</b> on line <b>180</b><br />

我在 php.ini (extension=php_mysql.dll) 中添加了 mysqli 扩展,但运气不佳。

同时检查mysqli是否安装到我的服务器上:

php -m|grep mysql

这就是我的输出

mysqli
mysqlnd
pdo_mysql

这意味着mysql已经安装到我的服务器上

【问题讨论】:

  • 您是否添加了 PHP cli 的扩展?我的意思是你改变了哪个 php.ini
  • 我在与可执行文件 (/home/example/public_html/php.ini) 相同的文件夹中创建了一个新的 php.ini 文件
  • 听起来 cron 使用的 PHP 版本并没有支持这一点。也许使用显式 php,即 /usr/bin/php7.4 myscript.php 并为此更新 php.ini,如果它意味着服务器范围。否则我认为你可以包括像 /usr/bin/php7.4 -c /path/to/custom/ini myscript.php 这样的ini
  • 在 cron 命令中包含 php.ini 解决了我的问题。非常感谢!

标签: php mysqli cron cpanel whm


【解决方案1】:

尝试使用 curl,例如 /usr/bin/curl example.com/new_facebook_csv/csv_generator1.php

或者你可以使用 wget wget -q -O- example.com/new_facebook_csv/csv_generator1.php

【讨论】:

  • 似乎 curl 运行成功,没有错误。但我仍然不明白为什么我会收到 mysqli 错误
  • curl 正在执行 http 请求,因此使用了不同的 php。命令行/cron 将运行不同的
  • 那么,mysqli 可以用于 http 请求,而不是用于命令行/cron 请求?
  • 我认为是这样的
猜你喜欢
  • 2017-02-27
  • 2019-06-30
  • 2014-07-22
  • 2013-11-18
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 2012-09-18
相关资源
最近更新 更多