【问题标题】:Running Custom Terminal Command from PHP从 PHP 运行自定义终端命令
【发布时间】:2012-01-09 15:14:56
【问题描述】:

问题是关于从 PHP 运行外部命令。请在下面找到我的代码。

    $htmlcontent=$_POST['source'];
    echo $htmlcontent;
    if(!isset($htmlcontent)){die('No HTML Cannot Proceed');}
    $sourcefile='sourcefile.html';

    $htmlfile=fopen($sourcefile,'w') or die('Open Failed');

    fwrite($htmlfile,$htmlcontent);
    fclose($htmlfile);

    if(!file_exists($sourcefile)){die('File Creation failed');}

    $command="CutyCapt --html=sourcefile.html --out=trials.png";

    echo 'Executing'.shell_exec($command);

我正在尝试使用 CutyCapt 生成提供的源 HTML 的快照。我的 CutyCapt 从命令行运行良好,它还生成快照。但是当我像在代码中编写的那样运行它时,什么也没有发生。

我尝试从中执行像ls 这样的普通命令。那些也在网络服务器上工作。对此感到困惑,任何人都可以给我一些建议吗?

我可能哪里出错了?我在 bin 中有 CutyCapt,准备在终端执行。

我正在使用带有 PHP 5.3 的 Ubuntu 11.10。

有什么想法吗? 谢谢

【问题讨论】:

  • 网络服务器是否对 CutyCapt 具有执行权限,该应用程序是否在 shell 路径中?它是否也具有使用 trial.png 的写入权限?要解决路径问题,请使用绝对路径:/usr/bin/CutyCapt ...
  • 我尝试将 0777 设置为该文件夹。仍然没有变化。
  • 我已经给了 www-data(WebServer) 用户权限。但是某些命令存在问题。像 'ls, ps' 可以正常工作,但 'la' 不行。我不知道为什么它不起作用
  • 检查 php.ini 以确保您被允许运行命令

标签: php shell exec


【解决方案1】:

使用 system() 或 exec() 和 passthru 在 php.net 上查找

【讨论】:

  • 和类似 exec(command, $data); var_dump($data);
  • hmm 还有其他一些建议,也许您需要 chmod php 文件或可执行文件 (777)?
  • 我在发帖之前尝试了所有这些。无论如何,现在我使用某种客户端-服务器机制运行它。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 2021-12-13
  • 2016-02-13
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多