当前位置: 首页 > 工具软件 > PHP Shell > 使用案例 >

总结 shell_exec 调用 php 脚本不成功的原因

陈开宇
2023-12-01

最初的调用命令:

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,而执行脚本的用户是其他用户,所以即使脚本执行成功,日志也没有权限写入
 

 类似资料: