问题标签 [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.
php - php7.1-fpm 在并发用户时产生最大子代
在 AWS m4large 实例上运行 php7 并遇到 php7.1-fpm 问题。
它可以很好地提供单个连接,但是一旦我开始运行,即使是最少量的流量 fpm 也会开始产生很多孩子。
我只是提供一个 phpinfo 页面,所以这里没有显着的内存使用。
如果我运行,ab -n 10 -c 10 https://example.com/index.php
我会立即在我的 fpm 日志中收到以下消息。
这是我的 fpm 设置
我一直在玩我的最小/最大服务器设置,它是 50 还是 100 都没关系。
有什么帮助吗?什么可能导致这崩溃?
php - nginx 服务器如何处理 PHP 请求?
谁能解释一下整个过程,我才刚刚开始了解过程。我了解 Apache 服务器如何处理请求。
nginx 服务器如何处理请求,它与 Apache 服务器有何不同?
php - PHP:无法将文件移动到不同的文件夹
我正在尝试将使用 PHP 上传的文件移动到另一个文件夹,但不知何故这不起作用,导致:
move_uploaded_file(upload/tmp/phpxEGMLG): failed to open stream: Permission denied
所以,显然我没有适当的权限upload/tmp
(实际上是/var/www/html/upload/tmp
)。
我已经设置了权限777
和所有者root:root
,/var/www/html/upload/tmp
以绝对确定不会有问题。
但这并没有解决它...
我尝试过的其他事情:
- 将所有者设置为
apache:apache
- 将源文件权限更改为
777
和所有者root
(默认情况下,所有者设置为apache
) - 检查 PHP 设置(几乎是默认设置,
/var/www/html
并且/tmp
在内部open_basedir
,upload_tmp_dir
未设置)+ 日志 - 检查 Apache 设置 + 日志
- 在同一个文件夹中移动文件->这可行!
- 将其移动到其他文件夹--> 不起作用
- 将所有父目录设置为
777
和所有者root
或apache
我创建了一个测试脚本:
它提供如下输出:
测试文件移动
/var/www/html
根目录
/var/www/html/upload/tmp数组 ( [type] => 2 [message] => rename(/tmp/tst.txt,tst-2.txt): Permission denied [file] => /var/www/html/test.php [line] = > 13)
这告诉我脚本在哪个用户下运行并且我在正确的目录中。它还省略了额外的检查move_uploaded_file
使用,专注于文件的移动。
关于我的设置的一些信息:
- CentOS 7
- PHP 7.1
- PHP-FPM
- 阿帕奇 2.4.6
它为 PHP-FPM 使用单独的临时目录,例如/tmp/systemd-private-xxxx-php71-php-fpm.service-yyyy/tmp/
. 也许有一些原因它不能将文件移到这个目录之外?虽然我找不到任何东西......
我希望有人可以为我提供有关可能发生的事情的线索!
php - 在(php-fpm)docker容器中找不到mysqli
我在我的 nginx Web 服务器使用的 docker 容器中运行php:7-fpm。除了我试图在我的 PHP 代码中实例化一个 mysqli 连接之外,一切都运行良好。我收到以下错误:
这是我用于构建映像的 Dockerfile,我在其中显式安装了 mysqli 扩展:
鉴于下面的 phpinfo() 输出,它似乎已安装。我需要以某种方式配置或启用它吗?
php - 使用 php fpm 和 Socket 连接创建 PHP API
我想创建一个可以用作微服务的 PHP API。它不应该从 Internet 访问,因此连接安全不是问题。优先级是性能。我正在考虑使用简单的 TCP 套接字连接来摆脱 HTTP 开销并建立持久连接。但我也想利用 php-fpm 的长处。这样的事情可能吗?
我可以使用 nginx 作为 tcp 服务器吗?或者我可以直接连接php-fpm吗?
我希望我的意图很明确。提前谢谢。
php - 如何在 PHP 中正确设置 PATH
我正在尝试PATH
在 PHP 中设置环境变量,但遇到了一些意外行为:
结果是
所选的可执行文件也反映了这一点,这些可执行文件来自/usr/bin
而不是/usr/local/bin
.
我的目标是(显然)更改脚本期间调用的某些可执行文件的路径。但是我不能直接更改我想要更改其路径的可执行文件的路径,因为它是由一些二进制文件间接调用的。我也不能简单地使用该PATH="$PATH"
变体而不修补外部库。
因为明显的解决方法不适用,而且我觉得这很好奇,所以我想解释一下为什么会发生这种情况以及如何(或是否)可以以传递给system
或exec
调用的方式设置 PATH。
该脚本通过 php-fpm 运行,以防此处感兴趣。
php - php docker容器不加载php文件
我正在使用 nginx、php 和 fpm 在 docker 容器中启动我的 php 应用程序
它正确加载app.php
到localhost:8080
. 如formapro/nginx-php-fpm
文档中所述,app.php
默认加载。
但随后我的 php 应用程序尝试执行 POSTformsubmit.php
并收到此错误:
事实上,我什至无法http://localhost:8080/app.php
在我的应用程序中加载或任何 php 文件。问题是什么?
php - nginx + php-fpm 使用套接字说找不到 404 文件
我已经使用通过 FastCGI 访问 PHP 的 nGinx 配置了我的服务器。当我使用端口时它工作正常。一旦我更改为套接字并重新启动服务器,它就会显示“404 Not Found”。
我选择这个设置的原因是出于开发原因,有多个版本的 PHP 来测试我的代码。(并且使用端口,我可以拥有具有不同 PHP 版本的不同 IP 地址。)
(因为涉及的文件太多,这里只放主要的,如果需要查看更多文件,请询问。)
php-fpm.conf:
启用站点/socket-php55:
php-fpm.d/www.conf:
上面的工作,但是如果我删除评论(并评论上面的行),使用套接字,它会失败。请解释为什么在使用套接字时这不会提供(例如 phpinfo)页面。
php - 使用 PHP-FPM 运行 MAMP?
我正在使用 MAMP 在 PHP 上进行本地开发。在我的生产服务器上,我正在运行 PHP-FPM,因此我可以使用诸如fastcgi_finish_request();
等之类的东西。
出于某种原因,我无法理解如何让 PHP-FPM 在 MAMP 上运行。这甚至可能吗?据我所知,FPM 现在包含在 PHP 中......但是查看文件我看不到任何类型php-fpm.conf
或任何相关文件。
在过去的几天里,我看了很多东西,试图弄清楚这一点,我不知道该相信什么了……哈!
我正在运行一个简单的测试info.php
:
很抱歉问什么可能是一个愚蠢的问题,我只是在这上面花了太多时间。
谢谢!