如何通过PHP触发Shell脚本

How to trigger Shell Scripts through PHP

基于来自 PHP 前端用户表单的某些表单条目,我需要将数据保存在一个文件中(已经实现),然后执行一个 shell 脚本作为一个动作。我可以从 PHP 写入一个文件,但是我无法触发同一目录的另一个文件,两者的权限完全相同。我已经尝试过 exec 和 shell_exec,但似乎没有帮助!尝试的一些示例包括 -

shell_exec("/bin/sh  dq_files/shell_script.sh");
shell_exec("./dq_files/shell_script.sh");
shell_exec("sh dq_files/shell_script.sh");
exec("<similar-shell-functions-as-above>, $result, $output);

所有这些都没有帮助。

注意 - 我的 php.ini 文件的 disable_functions 是空的 (disable_functions=),我的 PHP 的安全模式已关闭。 PHP 正在由 apache 用户和 apache 组执行,我已经更新了该目录中的所有文件,直到具有 777 权限和所有权的最低层级已转移到 apache:apache,但似乎没有益处。

可以通过多种方式解决,如下:

1) 通过用户级权限:提升当前用户以允许他默认在该位置执行,或者通过必要的权限分配。

2) 使用具有必要权限的独立微服务在这些位置执行 *.sh 文件。

3) 如果您在其他位置设置了 运行 权限,您最好从该位置 运行ning(如果您的系统管理员不允许您添加独立的微服务或新的一组权限):php -f /path/to/file.php

希望对您有所帮助。