【问题标题】:exec in php is working inappropriatelyphp 中的 exec 工作不正常
【发布时间】:2012-03-13 11:07:07
【问题描述】:

我愿意通过 PHP 执行一个 shill 命令,但我遇到命令没有执行,这里是命令:

exec('/cutycapt/CutyCapt --url="' . $source . '" --out="/home/user/NetBeansProjects/PhpProject1/htmlImage/example.png"');

我尝试执行以下测试:

echo exec(' ls  /cutycapt/');//print_r is the same

此命令返回所有文件时只返回一个文件

echo system(' ls  /cutycapt/');

我尝试在第一个命令中使用“system”方法而不是exec,结果是一样的

什么会影响命令使其无法执行?

更新

我所说的第一个命令的情况是我在终端中运行它还是在终端中运行 PHP 脚本,但是当我从浏览器(php 脚本)运行它时它不起作用! !

【问题讨论】:

  • 权限?您是否有足够的权限执行该文件夹中的命令?
  • ls 示例是预期行为; exec 返回输出的最后一行。是什么让您认为第一个命令没有执行?您的错误日志中有什么内容吗?
  • @Wooble Sir 当我在终端运行命令时大约需要 10 秒,它会在路径 out="/home/user...
  • 我怎样才能给 php 权限?我应该执行 su 还是 sudo 以及如何执行?

标签: php linux command


【解决方案1】:

查看手册 - http://de3.php.net/manual/en/function.exec.php exec 和 system 返回“命令结果的最后一行”

【讨论】:

    【解决方案2】:

    如果是systemexec,则返回命令结果的最后一行。 如果您需要执行命令并将命令中的所有数据直接传回而不受任何干扰,请使用passthru() 函数。

    【讨论】:

      【解决方案3】:

      我在 php.ini 中使用外部命令时遇到了同样的问题。问题与文件权限有关。我正在使用“vchiq”库,错误是“* 无法打开 vchiq 实例”。 This page 可能对你有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        相关资源
        最近更新 更多