【发布时间】: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