最初的调用命令:
shell_exec("php /data/web/code/think MyCronJob")
正常情况下 MyCronJob 执行完成后,会输出文件日志到系统
发现执行成功后,shell_exec返回NULL,查看日志也没有执行成功php脚本
尝试:
1、检查php.ini配置文件
safe_mode 查看安全模式是否开启
safe_mode_exec_dir 该参数指定了只有在特定目录中的外部程序才可以被执行
disable_functions 禁用的函数
2、检查脚本的文件权限
3、将执行的php全局命令改成绝对路径
可以通过如下命令查询
which php
比如我这里使用的是
/usr/local/php/bin/php
shell_exec("/usr/local/php/bin/php /data/web/code/think MyCronJob")
4、查看输出日志的文件权限
发现文件权限是root,而执行脚本的用户是其他用户,所以即使脚本执行成功,日志也没有权限写入