标签: shell-exec

PHP exec:挂起,不继续下一行

我有一个php文件'run.php',我正在终端上运行.在这个文件中,我有以下几行:

exec("open-crawlers $ port 2>&1",$ out,$ code); echo'hello';

我遇到的问题是终端在执行'exec'命令后挂起; 该计划没有到达第二行.

php terminal exec shell-exec

6
推荐指数
1
解决办法
4469
查看次数

php shell_exec实时更新

我有这个shell程序,我想通过php执行.问题是它可能需要很长时间,因此我需要它来实时更新用户的浏览器.

我读到我可能需要使用popen()来做到这一点,但我有点(好吧,我真的是:P)一个PHP菜鸟,无法弄清楚我怎么能做到这一点.

非常感谢任何帮助!

php shell-exec popen

6
推荐指数
1
解决办法
8322
查看次数

shell_exec,Windows路径未运行

我试图使用shell_exec运行命令,但它没有返回任何输出.当我将命令复制到命令提示符时,它就像一个魅力.

这是我正在尝试运行的命令.

$result = shell_exec('android update project -p "C:\xampp\htdocs\appBuilder" -t 1');
Run Code Online (Sandbox Code Playgroud)

$result正在返回一个空字符串.当我在命令提示符下运行该命令时,它会显示一条消息,说明该build.xml文件已成功生成.它应该显示成功消息$result.

如果我android update project -p "C:\xampp\htdocs\appBuilder" -t 1在命令提示符下运行命令,它就可以工作.

仅供参考:此命令build.xml用于为Android应用程序生成文件.我也使用xampp在本地Web服务器上运行它.

谁知道我做错了什么?

php shell-exec

6
推荐指数
1
解决办法
5769
查看次数

从PHP编译C,exec错误试图执行'cc1'

嗨伙计们我试图用PHP编译一个C程序与exec和Laravel框架但我不认为这是问题,因为我可以从终端编译和执行C程序没有问题,如果你知道从修补程序在Laravel 5所以问题来自PHP,但我找不到错误我认为问题是形成不同版本的GCC,但为什么让我从终端编译.

我从PHP那里得到这个错误.如果我从终端编译它可以工作,但从PHP没有.

    $path = public_path("testing/cosas.out");
    exec("gcc testing/pruebaC.c -o testing/from.out 2>&1",$output,$status);
    dd($output,$status); //is like var_dump
Run Code Online (Sandbox Code Playgroud)

我得到了!!

gcc:错误尝试执行'cc1':execvp:没有这样的文件或目录"

我检查了权限,事实上我在绝望XD中做了chmod 777而且我尝试重新安装一切,但它不起作用.我很沮丧,我希望你能帮助我.

对不起我的英语,如果我犯了语法错误,谢谢我等待你的帮助:D

php c gcc exec shell-exec

6
推荐指数
1
解决办法
294
查看次数

PHP-运行shell_exec()不会返回所有输出

我正在pdfgrep搜索PDF文档中关键字的所有外观。

现在,我想通过PHP执行此操作,以便可以在我的网站中使用它。

但是,当我运行时:

$output = shell_exec("pdfgrep -i $keyword $file");
$var_dump($output);
Run Code Online (Sandbox Code Playgroud)

$keyword关键字和$file文件在哪里,我没有得到全部输出。

PDF由产品代码,产品名称和产品价格表组成。

通过终端执行命令时,可以看到整行数据:

product code 1    product name with keyword substring    corresponding price
product code 2    product name with keyword substring    corresponding price
product code 3    product name with keyword substring    corresponding price
Run Code Online (Sandbox Code Playgroud)

但是,当我通过PHP运行它时,我得到如下信息:

name with keyword substring with keyword substring product code 1 
product name with keyword substring product name with keyword substring 
corresponding price
Run Code Online (Sandbox Code Playgroud)

它只是不获取所有数据。它并不总是获得产品代码和价格,并且在很多情况下也没有获得整个产品名称。

我通过浏览器查看输出并放入,header('Content-Type: text/plain');但是它只能美化输出,数据仍然不完整。

我试图通过Python3.6运行完全相同的shell脚本,这给了我所需的输出。

现在,我尝试通过PHP运行相同的Python脚本,但仍然得到相同的损坏输出。

我尝试运行一个我知道会返回较短输出的关键字,但是我仍然没有得到所需的整个数据行。

有什么方法可以可靠地获取 …

php terminal shell-exec python-3.x

6
推荐指数
1
解决办法
554
查看次数

限制shell_exec的执行时间

我有一个 exe 文件,其中包含以下代码:

同时(1)

printf("你好\n");

我正在使用 shell_exec 通过 php 执行这个 exe

$output = shell_exec('C:/Users/thekosmix/Desktop/hello.exe 2>&1');

回声$输出;

现在脚本执行了很长时间,直到我从任务管理器中终止进程并给出致命错误:

(致命错误:第 7 行 C:\xampp\htdocs\shell\index.php 中允许的内存大小为 134217728 字节(试图分配 133693440 字节)

我希望脚本(或此函数)在给定的持续时间内运行,并打印在持续时间内生成的任何输出,而不是任何致命错误。set_time_limit() 也没有解决问题。

php shell-exec fatal-error

5
推荐指数
1
解决办法
4446
查看次数

从 PHP 脚本运行 PHP 脚本的最佳实践是什么?

我会使用以下代码:

$SERVER_PATH = dirname(__FILE__);
shell_exec($PHP_LOCATION.' '.$SERVER_PATH."/script.php?k1=v1&k2=v2 > /dev/null 2>/dev/null &");
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • $PHP_LOCATION应包含 PHP 的路径,

  • $SERVER_PATH- 是当前工作目录(幸运的是要运行的脚本位于同一目录中),

  • > /dev/null 2>/dev/null &添加以使此调用异步(取自Asynchronous shell exec in PHP Question)

这段代码有两个问题:

  1. 据我记得?k1=v1&k2=v2仅适用于网络调用,因此在这种特殊情况下参数不会传递给脚本。

  2. 我真的不知道如何初始化$PHP_LOCATION变量以使其灵活并在大多数主机上工作。

我对这两个问题进行了一些研究:

要解决1 ,建议使用-- 'parameters_string',但也建议修改脚本来解析参数字符串,这看起来有点笨拙。有更好的解决方案吗?

为了解决2,我找到了一个可以使用的解决方案PHP_BINARY,但这是一个 PHP 5.4+ 的情况(我使用的是 5.3)。但最初的问题是运行与原始脚本版本相同版本的 PHP。那么对我来说(因为我只使用 PHP 5.3)可能有解决方案吗?

编辑0

让我解释一下为什么我坚持这种奇怪的(对于 PHP)方法:

这些 PHP 脚本应该彼此分开:

  • 其中之一将分析数据并

  • 第二个将生成 PNG 图形作为最终结果。

这些脚本并不打算同时运行,这意味着第二个脚本可以按照自己的计划运行,只需要在其数据准备就绪时运行(由第一个脚本完成)。因此,不应将任何数据从第二个脚本(子脚本)传回第一个脚本(父脚本)。

编辑1

从大多数评论来看,主要讨论是分叉方向。不过,我想强调一下最初问题中提出的第 1点和第 2 点。我有一些理由按照我指出的方式解决任务,并且我试图指出所有这些原因。如果我的某些观点看起来很奇怪,请发表评论 - …

php linux shell-exec

5
推荐指数
1
解决办法
1007
查看次数

php shell_exec 返回 null

我想php ../cat1/index.php gr_s2/3/gr-n40 1200通过 php 运行命令。shell_exec 返回 NULL 作为结果,但是当我在 cmd 上尝试该命令时,输出显示正确。

php 和 shell_exec 中发生了什么?

注意:具有不同参数的命令(例如:)php ../cat1/index.php gr_s2/3/gr-n40 800在(php 和 cmd)中都可以正常工作。

php command cmd shell-exec

5
推荐指数
1
解决办法
1万
查看次数

PHP shell_exec() 不起作用,但命令可以从控制台运行

我正在按照本指南通过 Git 部署我的网站,但在使用 PHP shell_exec() 或 exec() 时遇到了一些问题。部署脚本运行多个命令,例如gitwhoamiwhich gitrsync等。当我以服务器用户身份登录时,所有这些命令都有效。

然而,当我点击应该运行这些命令的 php 脚本时,它们不起作用。 whoami: command not found

git: command not found

rsync: command not found

which: command not found

我可以通过提供命令的路径(例如/usr/bin/whoami=> myuser)来解决此问题,但某些命令/usr/bin/which rsync仍然不起作用。(那个给了我/usr/bin/which: no rsync in (/bin)

这些对于让项目正常运行并不重要,但我仍然想知道是否存在某种权限问题或我做错了什么。有人对这里有任何见解吗?

php linux command-line shell-exec

5
推荐指数
1
解决办法
5783
查看次数

shell_exec 没有给出任何结果,并且没有做任何事情

所以我有一个问题,在我看来应该很容易解决。我想通过 ssh 连接到服务器,我已经这样做了很多次,然后让 shell 执行,我也已经这样做了很多次,但它不起作用。

我正在使用的代码

<?php
            $ip = '1.2.3.4';
            $cmd = "ssh user@".$ip;
            $result = shell_exec($cmd." 'sudo /bin/systemctl stop wildfly.service'");
            echo "<pre>output: $result</pre>";
            echo "<div class='alert alert-success'><strong>SUCCESS</strong><br>Wildfly node has now restarted</div>"; 
?>
Run Code Online (Sandbox Code Playgroud)

直接从终端运行命令

ssh user@1.2.3.4 sudo /bin/systemctl stop wildfly.service
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是在 php 中运行它不会给我任何结果,而且它也没有做任何事情。

有人可以指导我发现我的 shell_exec 做错了什么吗?

提前致谢!

php shell-exec

5
推荐指数
1
解决办法
2816
查看次数

标签 统计

php ×10

shell-exec ×10

exec ×2

linux ×2

terminal ×2

c ×1

cmd ×1

command ×1

command-line ×1

fatal-error ×1

gcc ×1

popen ×1

python-3.x ×1