【问题标题】:How to trigger Shell Scripts through PHP如何通过 PHP 触发 Shell 脚本
【发布时间】:2017-05-17 11:00:58
【问题描述】:

基于 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,但似乎没有受益。

【问题讨论】:

  • 检查您的日志文件。它可能会为您提供有关问题所在的更多信息。
  • 发布这些命令的输出。这将有助于调试

标签: php bash xampp remote-access remote-server


【解决方案1】:

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

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

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

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

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2020-08-30
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    相关资源
    最近更新 更多