【问题标题】:PHP system() help no simple commands workPHP system() 帮助没有简单的命令工作
【发布时间】:2010-07-02 11:49:58
【问题描述】:

我正在尝试在 PHP codeigniter 应用程序中从我的一个控制器运行 shell,

我正在尝试运行文件/x/sh/xpay4.sh,但是我只是将 127 返回到屏幕上,我什至可以使用基本命令,如 lspwd 任何人都可以提出为什么会这样,我想可能是这样safe_mode 当我ini_get('safe_mode') 它返回 1

【问题讨论】:

  • 你的PHP用户有执行xpay4.sh的权限吗?
  • 如何找到我的 PHP 用户?
  • whoami 告诉你你是谁(作为用户),然后检查权限我认为 ls -l 可以给你关于权限的答案。

标签: php shell system


【解决方案1】:

system 功能在安全模式下受限。

您只能执行可执行文件 在safe_mode_exec_dir 内。为了 实际原因目前不是 允许有.. 组件在 可执行文件的路径。 escapeshellcmd() 在 这个函数的参数。

http://www.php.net/manual/en/features.safe-mode.functions.php

【讨论】:

    【解决方案2】:

    system() 仅返回 shell 输出的最后一行。 听起来这是“127”。

    如果您需要整个输出,请尝试:

    $output = array();
    exec('/x/sh/xpay4.sh', $output);
    echo implode("<br>", $output);
    

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2019-04-13
      • 1970-01-01
      相关资源
      最近更新 更多