问题标签 [proc-open]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4047 浏览

php - 使用未定义的常量 STDOUT - 假定为“STDOUT”

我正在运行以下proc_open功能。加载页面时,我收到错误消息:

我应该如何设置STDOUTSTSDERR正确?

PHP 代码段


更新

当我在命令行(CentOS)中chmod 755 test.php运行./test.php时,我得到错误输出:

这令人费解,=是不是命令?


更新 2

我得到输出:

0 投票
1 回答
963 浏览

php - x 秒后终止 proc_open

我正在使用 pdftk 合并 pdf 文件。有时,用户上传格式不正确的 pdf,它会挂起进程,不返回任何错误并消耗所有服务器资源。为了防止这种情况发生,我正在考虑实现进程调用,proc_open并希望为进程设置运行时间限制,如果超过时间限制则终止进程。

下面是我用来合并 pdf 文件的函数示例,如果我设置

stream_set_blocking($process, 0);

它返回一个错误:

stream_set_blocking(): supplied resource is not a valid stream resource

我认为此函数中的某些内容格式不正确,希望有人能够为我指出正确的方向...该函数目前没有返回任何错误,但不会根据需要在 30 秒后终止

0 投票
0 回答
426 浏览

php - php的Svn远程服务器证书验证问题

为了使用 websvn 浏览远程存储库,我在本地主机(windows7,wampserver)中安装了 websvn。Websvn 通过 php 函数的 proc_open 执行 svn 命令。当 svn 命令是:

svn info "http://site.com/svnurl" --xml --non-interactive --username "guest" --password "guest"

proc_open 返回正确的结果。但是当 svn 命令是:

svn info "https://site.com/svnurl" --non-interactive --trust-server-cert --username "guest" --password "guest"

proc-open 返回错误。

svn:E175002:无法连接到 URL 'https://site.com/svnurl' 上的存储库 svn:E175002:'https://site.com/svnurl'的选项:服务器证书验证失败:为不同的主机名,发行者不受信任(https://site.com/svnurl)。

这里,site.com/svnurl 是虚幻的 url,真实的 url 是 205.174.169.180:9880/GBoomTest.ca。

你怎么能解决这个问题?

0 投票
1 回答
596 浏览

php - 如何使用 PHP 打开和关闭进程?

如何使用 PHP 打开和关闭进程?

现在我使用以下代码打开一个进程:

我正在寻找一种解决方案来关闭进程,以防用户想要中止。即使我停止了 php 脚本,该进程仍然在后台运行(这很正常),但我找不到在 Windows 下关闭/终止它的方法。

有谁知道我该怎么做?谢谢你。

编辑以适应 mallix 的答案:

不幸的是,7zip 独立控制台进程仍然在后台运行。会话变量的值是 1(整数)确认。

编辑 ..:我刚刚注意到使用 jquery 更改会话变量的请求正在等待......直到第一个脚本完成。所以,没用的:(

0 投票
3 回答
119 浏览

php - JavaScript 与正在运行的程序来回切换

问题

我正在尝试查看是否可以在服务器端运行的程序和客户端运行的 JavaScript 之间来回切换。程序的所有输出都发送到 JavaScript 以显示给用户,用户的所有输入都从 JavaScript 发送到程序。

让 JavaScript 接收输出并发送输入很容易使用 AJAX 完成。问题是我不知道如何访问服务器上已经运行的程序。

尝试

我尝试使用 PHP,但遇到了一些我无法跨越的障碍。现在,我可以使用 PHP 执行程序而没有任何问题proc_open。我可以挂钩stdinstdout流,我可以从程序中获取输出并将其发送输入。但我只能这样做一次。

如果再次执行相同的 PHP 脚本(?),我最终会再次运行该程序。因此,我从多次执行中得到的只是程序stdout首先多次写入的内容。

现在,我proc_open在应该只处理输入和输出的脚本中使用,因为我不知道如何访问已经运行的程序的stdoutstdin流。在我看来,我需要在同一 PHP 脚本的多次执行中保持程序的执行状态;维护返回的资源proc_openpipes连接到stdinstdout流中。

$_SESSION不工作。我不能用它来维护资源。

有没有办法让程序有这样的来回?非常感谢任何帮助。

0 投票
1 回答
265 浏览

php - PHP proc_open - 如果进程需要输入,则退出

所以 - 我proc_open()用来执行诸如 , 等程序sshrsync执行scp备份任务。

但是,在某些情况下,这些过程可能会变得交互并需要输入,例如当 SSH 的公钥认证失败时,它会要求输入密码。这是一个主要问题,因为让备份作业挂起是不可能的,更糟糕​​的是,不会产生错误。

如何完全摆脱正在运行的进程中的交互性?如果该过程突然需要输入,我想立即退出并生成错误。通用超时不是解决方案,因为备份过程在正常操作中可能需要很长时间。我真的需要一个通用的解决方案来解决这个问题。

谢谢!

0 投票
1 回答
2695 浏览

php - PHP proc_open 可用性

我制作了一个 PHP 库,它使用proc_open并依赖外部应用程序来处理数据。

现在,我需要创建一个“检查”文件,该文件将分析服务器并返回是否可以在其上使用我的库。

我认为这些步骤就足够了:

  • 检查是否允许 proc_open
  • 检查是否安装了外部应用程序

如何检查是否允许 proc_open?另外,我猜 proc_open 也适用于基于 Windows 的服务器(仅使用 Windows 命令提示符而不是终端)?

0 投票
1 回答
1510 浏览

php - PHP 设置 proc_open 直接输出给用户

我正在使用 proc_open 和 pdftk 来预填充一些表格的数据,这很好用,但不是将结果保存到文件然后读回文件,我想直接打印文件。我有这个工作,所以我没有任何问题。但是我想将 proc_open 的输出直接指向返回给用户的流,这样我就不必在 php.ini 中保存内存中的值。到目前为止,我有以下内容:

我想将结果直接用于使用上面的代码,而不是将值实际保存在变量中然后打印出来。有没有办法将php输出中的流直接指向输出。我想这样做是为了节省内存并减少代码运行所需的时间。

有谁知道 php 中的流函数可以直接打印流结果。或者是否有 proc_open 的设置可以做到这一点。无论哪种方式,我担心这可能根本不起作用,因为我可能需要在输出中添加一个内容长度标题以直接显示 PDF。如果有人知道直接打印流的功能,是否还有一种方法可以在不实际读取流的情况下获取流的字节长度。

0 投票
1 回答
397 浏览

php - PHP proc_open 管道异常(Win7/Apache2.2)

以下代码在运行“php test.php”(PHP 5)的 Windows 7 中从命令提示符执行时有效 - 输出只是“test”。但是,当 php (v5) 在 localhost apache 服务器 (v2.2) 上运行的任何浏览器上运行时,它不起作用 - 即没有输出(使用直接回显、刷新和使用 AJAX 方法)。该过程已成功启动(使用 proc_get_status 验证)(对我来说意味着权限问题也可以)。似乎与管道有关。有任何想法吗?我错过了一件众所周知的事情吗?

0 投票
2 回答
2269 浏览

php - Proc_open 和 Capifony 问题

我正在尝试在 Symfony2.1 中将 Capifony 与我的 Web 应用程序一起使用以加速部署过程。

这是我的 deploy.rb 文件:

这是我的错误:

当脚本运行时php composer.phar update

更多细节在这里: http: //pastebin.com/hNJaMvwf

但是我在一个共享主机中,我的主机告诉我我不能启用 proc_open,有没有办法让它工作?

非常感谢你的帮助 !