问题标签 [fpm]

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 回答
14627 浏览

fpm - traefik 和 php fpm 的网关超时

我在使用 traefik 设置 mailcow 时遇到问题,我遇到网关超时。我对 nextcloud 也有这个问题,所以我真的很感兴趣,是什么导致了网关超时这些问题。

我想这与端口 9000 和 php-fpm 上游或某事有关。

但我想确定,以及如何处理它。

我的traefik.toml

我的交易docker-compose.yml

我的邮筒docker-compose.yml

0 投票
1 回答
2037 浏览

php - PHP FPM 7.1 套接字泄漏导致 NGINX - 504 网关超时

我使用Laravel Forge来启动我的 EC2 环境,这为我构建了一个 LEMP 堆栈。我最近开始收到 504 请求超时。

我不是系统管理员(因此订阅了 Forge),但我查看了日志并将问题缩小到日志中的以下 2 个重复条目:

在:/var/log/nginx/default-error.log

在:/var/log/php7.1-fpm-log

似乎 fpm 打开了永不中断的连接,并且从我的 RDS 加载日志中,我可以看到 RAM 不断被最大化。

我试过了:

  • 回滚到我的应用程序的明确稳定版本(2 个月前)
  • 用 5.6、7.0 和 7.1重新安装我的EC2fpm (以及它们各自的)
  • 在 14.04 和 16.04 完成上述所有操作
  • 创建更大的 RDS

现在唯一可行的是强大的 RDS(8gb RAM)+ 每 300 个请求杀死 fpm 池连接。但显然在这个问题上投入资源并不是解决方案。

这是我的配置/etc/php/7.1/fpm/pool.d/www.conf

这是我的配置nginx.conf

0 投票
2 回答
27092 浏览

php - 在一个 dockerfile 中结合 PHP-fpm 和 nginx

我需要将 php-fpm 与 nginx 结合在一个 dockerfile 中以进行生产部署。

那么是不是更好:

(1) 使用 php:7.1.8-fpm 启动 dockerfile,然后在上面安装 nginx 镜像层?

(2) 或者你推荐使用 nginx 镜像然后使用 apt-get 安装 php-fpm ?

PS:我没有用于生产部署的 docker-compose 构建选项。在我的开发环境中,我已经使用 docker-compose 并从两个图像轻松构建多容器应用程序。我们的组织 devops 不支持基于 docker-compose 的 prod 环境部署。

0 投票
0 回答
644 浏览

php - PHP shell_exec 在 CLI 和 FPM 中的运行方式不同

我要疯了……

我正在尝试执行 electron-pdf 以从 PHP 应用程序(使用 Laravel)和 PHP 7.0.23 生成一些 PDF。

当使用“php artisan serve”运行应用程序时,它使用 php-cli,运行以下工作正常并生成我的 PDF:

shell_exec("electron-pdf $inputURL $outputFile");

当通过 nginx(使用 php-fpm)为应用程序提供服务时,这个命令什么都不做。

所以我去调试这个问题......我试过运行shell_exec("node -v")但是在php-fpm下它没有运行,所以我注意到php-fpm使用的PATH不是用户定义的路径池,所以我已经定义了env[PATH]变量,现在 php-fpm 看到了正确的路径,与 php-cli 使用的路径相同。

现在,如果我打电话shell_exec("node -v"),我v8.4.0会在 cli 和 fpm 中看到。所以我认为一切都很好!然后我尝试shell_exec("electron-pdf --version")了......它在cli上打印得很好,但在fpm上什么也没做......

我该如何调试呢?发生了什么?php-cli 和 php-fpm 以相同的用户身份运行,具有相同的路径,怎么会有不同的行为呢?

非常感谢,如果您需要更多信息,我会相应地编辑问题,因为我没有足够的声誉来发表评论。

PS:chroot被禁用,安全模式被关闭,shell_exec不在disable_functions中

0 投票
1 回答
716 浏览

php - 是否可以禁用每个脚本的 PHP 慢日志?

我的网页上有一个处理大量信息的脚本,它应该很慢。但是 php-fpm 正在终止它,因为日志慢。

我只是在日志中看到注意:孩子 26537 停止跟踪,Web 服务器向我抛出 504 错误。

我试图通过 ini_set 禁用慢日志

但它不工作。我正在使用 php 7.1 最新版本

0 投票
0 回答
314 浏览

php - PHP - 未捕获的错误:找不到类“MongoClient”(LEMP/PHP7)

注意:有关此错误的其他问题针对 Windows、LAMP 安装和 PHP5 解决。这是一个带有 PHP7.0 的 LEMP 堆栈。

我第一次尝试在 PHP 中使用 mongodb,但我得到Uncaught Error: Class 'MongoClient' not found了以下代码:

我在 Ubuntu 16.04 上运行 PHP7.0-FPM 和 Nginx。我还在同一台服务器上安装了 PHP5.4-FPM,但我正在尝试将 mongodb 与 PHP7.0-FPM 一起使用。我已经安装了该软件包php-mongodb以及 pecl 软件包mongodb并添加extension=mongo.so到 php.ini 但它不起作用。如果我跑,locate mongo.so我会看到它在/usr/lib/php/20131226/mongo.so. 不知道从这里尝试什么。

输出php -m | grep -i mongo

输出php -i | grep mongo

0 投票
1 回答
2422 浏览

php - php-fpm : 禁用特定池的 php 扩展

我已经配置了一个新的 FPM 池(www.conf中的配置文件pool.d),现在假设我想禁用对该特定池的 mysql 支持?或者也许有办法为该池加载该扩展?

我正在使用 debian 9,文件结构如下所示:

extension=thing.so可以在文件中找到conf.d/<extension>.ini。问题是所有这些扩展一旦配置似乎对所有池都通用......

我还尝试在全局范围内禁用 mysql 扩展,phpdismod然后在其中附加一行www.conf

这似乎不起作用(上面没有为该池启用 mysqli)

0 投票
1 回答
809 浏览

php - gdb回溯中的PHP-FPM未知调用者

我正在调试我的 php 应用程序中的段错误,我使用--enable-debug选项编译 php,并且在段错误期间 php-fpm 转储核心之后,我运行:

我还将.gdbinitphp 源代码放入包含核心文件的目录并设置set auto-load safe-path /~/.gdbinit(虽然不确定它有什么帮助)。

如您所见??,回溯中根本没有帮助。这是应该的吗?有没有办法得到真正的来电者?

0 投票
0 回答
1055 浏览

php - 什么是 php-fpm 写入磁盘(php-fpm 磁盘 i/o)?

我想知道为什么 php-fpm 使用磁盘进行写入,我的应用程序根本不与磁盘交互,日志中没有任何错误。

我有以下信息:

当我执行“fstat | grep php”时,我可以看到它打开了许多管道,很少有互联网流和本地流。

与 hiphop-php 相同的应用程序有 0 次读取和 0 次写入。

请建议,可能与我缺少的某些配置选项有关。我正在使用 opcache,所以根本不应该发生磁盘 i/o。我该如何调试它?

我使用 SSD,所以我不希望在运行 php-fpm 时发生任何磁盘 i/o。

编辑 似乎当我将数据发布到 php-fpm 时,它正在通过管道传输到磁盘,数据并不大,小于 100KB。如何避免这种情况,所以它使用内存而不是写入磁盘?

谢谢!

0 投票
1 回答
276 浏览

php - POST 到 php-fpm 会增加磁盘 i/o 写入

我正在向我的应用程序发送大约 100KB 的 POST 数据,它会导致 php-pfm 进程创建许多管道并写入磁盘。

我想知道如何避免这种情况。

来自 fstat 的数据

PHP应用程序是:

我在日志中没有错误。

几乎每个子进程都打开了 2 个管道。

谢谢!