【发布时间】:2013-12-14 07:39:40
【问题描述】:
我有一个可用的 shell 脚本,它使用 killall 来杀死程序的所有实例,如下所示:
杀死所有ABC
现在,我编写了一个 php 网页来使用 shell_exec 函数执行这个脚本:
shell_exec('sh ./myscript.sh');
问题是我的 php 代码在命令行中使用“php myscript.php”可以正常工作,但不能在浏览器中工作!但是,我知道命令行中的用户是“root”,而 php 中的用户是“apache”(我用 'whoami' 得到这个)。 linux 发行版是使用 SElinux 的 Centos 6。我把selinux的状态改成permissive了。
我检查过的内容:
- PHP 安全模式已关闭
- shell_exec() 不存在于 php.ini 的 disable_functions 中
有没有办法使用 php 使用 kill 命令运行脚本?
感谢您的帮助。
【问题讨论】:
-
任何 PHP 错误(检查
error_reporting和display_errors)?执行命令的退出代码是什么(使用exec()查找)?你有kill目标进程的权限吗? -
无退出码,无报错! exec() 也有类似的输出,是的,我有杀死的权限,但是“apache”没有!
-
总有一个退出代码!成功时它是 0,非零是错误代码!当你没有权限时,你不能!当你从 apache 运行它时,你就是 apache!
-
是的,但问题是如何使用 apache 完成这项工作?!
标签: php centos shell-exec