问题标签 [symfony-process]

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 投票
4 回答
24812 浏览

symfony - 锁定文件不是最新的 composer.json 中的最新更改

我正在尝试克隆一个 github 存储库并composer install在其上发布一个。但我得到了这个:

警告:锁定文件不是最新的 composer.json 中的最新更改。您可能会得到过时的依赖项。运行 update 来更新它们。

跑步时composer update

composer.json(需要部分)

0 投票
0 回答
1109 浏览

php - 在 Symfony 中运行一个独立的无休止的工作

  • Symfony:4.1
  • PHP: 7.1

我有使用Ratchet的工作 websocket 服务器。websocket 本身工作正常。我可以使用 Symfony 的命令从终端运行它

我无法解决其中一些问题:

  1. 您需要专用一个终端来运行此命令
  2. 大多数虚拟主机服务不让您访问终端
  3. 我希望管理员能够打开和关闭 websocket 服务器
  4. 管理员不需要知道终端是什么

对于问题 1,我尝试使用这种“分离”作弊,但它不能解决问题 2:

为了解决所有四个问题。我尝试过使用一个过程。但这种方法的问题是:

  • $process->run()- 运行一个php bin/console总是以超时结束的进程
  • $process-start()- 启动一个进程意味着它异步运行,但这也意味着该进程在请求结束后终止,也终止了我的 websocket 服务器。

这是一个例子

我尝试创建一个控制台应用程序,并从那里运行命令。但与流程相同的问题也适用于此处。

作为最后的手段,我尝试了一个名为DtcQueueBundle的包,因为它提到了以下内容:

使用方便

  • 用一两行代码启动后台任务
  • 轻松添加后台工作者服务
  • 只需几行即可将任何代码转换为后台任务

所以我按照他们的要求做了,创建了一个工作人员并尝试将其作为“后台任务”运行

他们的文档绝对是最差的!我什至试图深入研究他们的代码以从我的控制器内部开始工作。但我无法让它以一种超然的方式运行。

不管发生什么,我相信我的命令没有运行,因为它劫持了我的 PHP 线程。我想知道,有没有可能把这个没完没了的过程分开?甚至可以同时运行两个 PHP 实例吗?我会这么认为!

感谢您的帮助,对不起,很长的帖子

0 投票
0 回答
362 浏览

laravel - 在后台执行 Laravel/Symfony/Artisan 命令无法实时运行

我在 Linux 服务器上的 laravel 中使用 Laravel symfony 进程进行后台调用。我创建了需要很长时间才能执行的工匠命令,所以我有情况在按钮单击时在后台调用工匠命令。我得到了解决方案,但它适用于 localhost 而不是 aws 服务器。

我使用了以下解决方案:-

它在本地工作正常但不能在实时服务器上工作(linux aws服务器)

0 投票
1 回答
2150 浏览

php - Symfony/进程权限被拒绝

我正在使用 Symfony/Process 在 Laravel 的 web.php 路径中从 Laravel Dusk 运行测试。这是我正在使用的代码:

我认为它会正常工作,但我收到了这个错误:

Symfony\Component\Process\Exception\RuntimeException:无法打开临时文件来写入进程输出:fopen(C:\WINDOWS\sf_proc_00.out.lock):打开流失败:权限被拒绝

在 C:...\laravel-master\vendor\symfony\process\Pipes\WindowsPipes.php:60

我在 Symfony 文档中读到以下命令应该对我有帮助:

chmod -R 777 变量/日志/

但是我使用的是 Windows,我不知道如何获得它,也不知道该命令是否正确,或者我是否应该授予其他文件的权限。

0 投票
1 回答
182 浏览

gnupg - 使用脚本更改 GnuPG 密码

我正在努力使用脚本更改GnuPG私钥密码。

据我所知:它返回该过程最终成功,但它不会更改密码。gpg的任何其他形式的选项都会导致错误并且不会更改密码。

有人有任何提示吗?无论是否使用 Symfony 的流程组件,我都会接受答案——我只需要让它工作。

也欢迎 Python/Bash/Expect 答案。它应该可以在不暴露命令行中的密码短语的情况下工作。

0 投票
1 回答
447 浏览

php - Laravel 中的 Symfony\Process 包(用于 python 文件)

我正在尝试在 Laravel Project 中运行 python 文件。因此,我使用 Symfony\Process 包。我的代码如下所示:

当我使用这条线时:

我的 laravel 项目返回错误(我在移动应用程序中使用 laravel 框架作为后端,所以我看不到确切的错误;我只能看到我的后端有问题)

Το 总结一下,我运行上面的代码,但进程不成功。我检查它的条件:

有人知道吗?

0 投票
0 回答
221 浏览

php - Symfony\Component\Process\Process 无法运行 audit2allow

我正在尝试audit2allow使用Symfony\Component\Process\Process.

当我exec("audit2allow -a -M a2a");在 PHP 中运行时,它工作得很好,a2a.pp并且a2a.te已经生成。

但是,上面的代码产生下面的输出

这是有空时的典型输出/var/log/audit/audit.log。我需要进行哪些更改才能使其正常工作?Symfony 声称这不是一个错误。 https://github.com/symfony/symfony/issues/35862

更新

使用Symfony\Component\Process\Process(上面的代码)实际上会生成文件a2a.te,但它只有 1 行。

而 usingexec()会生成a2a.te包含多行的文件:

为什么运行相同的命令Symfony\Component\Process\Processexec()给出不同的结果?

0 投票
0 回答
219 浏览

phpunit - 对 Symfony 4.2 进程进行单元测试运行无限循环(而不是超时),没有单元测试它工作正常

假设我有以下 Symfony 4 命令:

如果我简单地调用bin/console app:command1它将返回预期的命令列表。基本上按我的预期工作。

但是,如果我有一个使用Symfony\Component\Console\Application::run()启动此命令的 phpunit 测试,我最终会Symfony\Component\Process::wait()

$this->processPipes->areOpen()永远开放的地方。

在我看来,如果我通过 phpunit 在进程中使用任何 Symfony 控制台命令,总会有两个管道像这样打开:

但我不知道这些实际上是什么。我还在 htop 中看到,start()proc_open实际上启动了一个新进程,但它只是挂起(完全没有做任何事情,甚至无法调试它),直到超时。错误日志中没有任何内容(超时除外)。

0 投票
1 回答
188 浏览

php - 如何将通配符 GLOB 传递给由 Symfony 控制台包装的 rsync?

我想做的事

我想将所有 XML 文件/source//target/

我如何尝试做到这一点

我正在使用 Symfony 进程/控制台组件作为 rsync 的包装器。

  • 流程组件 ^5.0
  • Symfony 控制台 ^4.3
  • PHP 7.2。

我的问题

php bin/console command:moveFiles /source/*.xml /target/通过运行结果调用我的命令:

Too many arguments, expected arguments "command" "source-path" "target-path".

似乎 /source/*.xml 中的 * 会抛出 Symfony (?) 并且不会让它识别提供的正确数量的参数。转义 * 会rsync -avz --remove-source-files /source/\*.xml /target/导致:

rsync: link_stat "/source/*.xml" failed: No such file or directory (2)

如何将通配符 GLOB 传递给 symfony 包装的 rsync?有没有另一种方法可以使用控制台来实现这一点?

0 投票
2 回答
548 浏览

python - 从 laravel 运行 python

我正在尝试从 Laravel 运行 python 脚本,SymfonyProcess组件如下:

我的控制器:

Python脚本:

但我在 dd 中得到的只是""

你认为是什么问题?