cronjob 上的 PHP 错误,在提示时工作正常

标签 php linux cron

我正在 cronjob 上运行以下脚本...

cd /etc/parselog/
php run_all.php >/dev/null

并且出现以下错误:

[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './pdo.so' - ./pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './mysql.so' - ./mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './mysql.so' - ./mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './mysqli.so' - ./mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './odbc.so' - ./odbc.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './pdo.so' - ./pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './pdo_mysql.so' - ./pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './pdo_odbc.so' - ./pdo_odbc.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Warning:  PHP Startup: Unable to load dynamic library './pdo_sqlite.so' - ./pdo_sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
[05-May-2009 20:30:12] PHP Fatal error:  Call to undefined function mysql_connect() in /etc/parselog/stats_downloads.php on line 5

但是,当我从命令行运行相同的脚本并登录时,它可以完美无误地运行。

这是我在提示符下的 $PATH 字符串:

$PATH = /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

有什么想法或建议吗?我确定在运行 cronjob 时,它没有 lib 路径或包含的内容。我什至尝试添加确切的路径

最佳答案

提示 1:确保您在 cron 作业中具有完全相同的 $PATH:

cd /etc/parselog/
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
php run_all.php >/dev/null

提示 2:确保所有其他环境变量也匹配。使用命令 env 转储环境,并将相应的导出添加到您的 cron 作业。

关于cronjob 上的 PHP 错误,在提示时工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/826552/

相关文章:

JavaScript:setInterval 函数仅在浏览器空闲时才计数?

c++ - 如何在 linux 下检查 c++ .to 文件?

Windows 和 Linux 之间的 C++ 可移植性

php - 在 PHP 脚本上运行 Cron 作业,在 Windows 的本地主机上

visual-studio-code - 如何在VS Code中编辑crontab?

php - 如何在 PHP 中获取本地系统时间?

php - 我应该在哪里提交事务——在存储过程中还是在调用应用程序代码中?

php - 将一组文件重命名为 001, 002, … php

php - 登录处理系统出错

linux - 在 Ubuntu 上导航到/ect