需要以特定用户身份在 cpanel 中运行 cron 作业 - 权限问题

需要以特定用户身份在 cpanel 中运行 cron 作业 - 权限问题

现在我在 CPanel CRON 作业部分中的调用是:

nice php /home/user/public_html/process.php 

在对 CentOS 和 PHP 5.2 进行最新更新后,我现在在所有 CRON 作业上都收到此错误:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: cannot open shared object file: No such file or directory in Unknown on line 0

去把事情弄得更糟,PHP 函数未被识别(如mysql_connectrequire_once(尽管仅限于 CPanel 中的 CRON 脚本,正常的可公开访问的 PHP 文件才能毫无问题地加载到公共互联网上)。

通过一些谷歌搜索,看来我需要以用户“nobody”的身份运行它才能使其正常工作。

如果我在 shell 中,我su -s /bin/bash nobody首先会充当该用户,但在 CPanel CRON 脚本中,这不起作用。

更新: 根据要求,从 CRON 运行时 php 进程文件的所有错误:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: cannot open shared object file: No such file or directory in Unknown on line 0

Warning: require_once(../users/config/application_top.php): failed to open stream: No such file or directory in /home/username/process.php on line 34

Fatal error: require_once(): Failed opening required '../users/config/application_top.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/username/process.php on line 34

require_once() 中提到的文件确实存在,所以我不知道它为什么会这样。而且,它已经工作了几个月了……我不得不假设是它yum update杀死了它。

答案1

PHP 警告:PHP 启动:无法加载动态库“/usr/lib64/php/modules/ssh2.so”-/usr/lib64/php/modules/ssh2.so:无法打开共享对象文件:第 0 行未知中没有该文件或目录

确保您拥有相同的:

  1. $PATH
  2. 所有其他环境变量

在 cron 作业中运行时。您可以将输出转储echo $PATHenv临时文件,并与从命令行运行时的结果进行比较。

相关内容