【问题标题】:ARGV and ARGC not returning from CRONARGV 和 ARGC 未从 CRON 返回
【发布时间】:2018-11-30 00:24:28
【问题描述】:

我正在尝试从 cron 作业中获取 argv 和 argc。这就是在 $_SERVER 中被返回的内容并且它们丢失了。

这是 cron:

/usr/bin/php -q /home/uopynwrukuid/public_html/test_arg.php 2 200

这是我得到的:

array(13) {
  ["SHELL"]=>
  string(31) "/usr/local/cpanel/bin/jailshell"
  ["MAILTO"]=>
  string(23) "email@email.com"
  ["USER"]=>
  string(12) "uopynwrukuid"
  ["PATH"]=>
  string(13) "/usr/bin:/bin"
  ["PWD"]=>
  string(18) "/home/h"
  ["LANG"]=>
  string(11) "en_US.UTF-8"
  ["SHLVL"]=>
  string(1) "1"
  ["HOME"]=>
  string(18) "/home/uopynwrukuid"
  ["LOGNAME"]=>
  string(12) "uopynwrukuid"
  ["_"]=>
   string(12) "/usr/bin/php"
  ["PHP_SELF"]=>
  string(0) ""
  ["REQUEST_TIME_FLOAT"]=>
  float(1529521741.2111)
  ["REQUEST_TIME"]=>
  int(1529521741)
}

有人知道为什么会这样吗?该脚本在某个时候起作用,现在已经损坏。

【问题讨论】:

  • var_dump($argv); 给你什么?

标签: php cron cpanel argv argc


【解决方案1】:

注意到您正在从 shell 运行 CPanel,CPanel 有一个奇怪的习惯,即使用 php-cgi 作为 /usr/bin/php 而不是 php-cli。

php -v 应该在括号中返回一个版本和 (cli),例如:

PHP 7.0.27 (cli) (built: Jan  9 2018 12:43:14) ( NTS )

如果您看到的是 cgi 或 fcgi,那么您需要找到实际 cli 版本的路径。我相信这通常位于 cpanel 服务器上的 /usr/local/bin/php。

【讨论】:

    猜你喜欢
    • 2018-08-05
    • 1970-01-01
    • 2011-04-15
    • 2015-09-01
    • 2012-04-20
    • 1970-01-01
    • 2015-09-13
    • 2020-11-03
    • 2013-09-08
    相关资源
    最近更新 更多