如何仅从 cron 运行 php 脚本,或者是否可以检查请求是否来自 cron?
EDİT
我正在尝试使用参数调用 php 文件。但它们都不起作用:
php -q /home/domain/public_html/cronjob.php?i=a
php -q /home/domain/public_html/cronjob.php par1
php -q /home/domain/public_html/cronjob.php par1=a
php -q /home/domain/public_html/cronjob.php par1='a'
我无法使用 $_GET、$_SESSION 或 $argv。如何使用参数调用文件?
如果您问这个问题是因为您需要检查脚本是否not从网络请求调用,您可以使用php_sapi_name http://php.net/php_sapi_name函数来查看调用方法 - 如果它是一个 cron 作业,该函数应该返回cli
表示命令行调用。然而,它并不能帮助区分 cron 作业和常规命令行调用。
如果您还需要区分 cron 作业和脚本的命令行调用,您可以检查运行脚本的用户,看看它是否与运行 cron 作业的用户相同。例如,可以在 *nix 系统上使用posix_getuid http://php.net/posix_getuid or posix_getlogin http://php.net/posix_getlogin功能。
最后,如果您担心有人以 cron 作业所有者身份登录并从命令行运行脚本,则应该使用没有 shell 的单独用户来执行 cron 作业。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)