问题标签 [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 - 在项目目录中保存 php 会话时出错
在我的项目的配置文件中,我有:
"%kernel.root_dir%/../var/sessions
属于wwww-data
(是的,php-fpm 运行为www-data
)。
当项目运行时,会在该目录中创建一个(空的)会话文件,但显然 php/symfony 在实际读取/写入它时遇到了麻烦,尽管能够正确创建它。这是刚刚创建的空会话文件(在此请求之后没有运行其他进程):
请求终止,引发异常:
会话数据文件不是由您的 uid 创建的。
我找到了这个答案(和这个答案),并通过这样做(将我的会话设置save_path
为"/var/lib/php/sessions"
我能够继续(我可以看到我的会话文件不仅被创建,而且它的内容实际上已经到位),但是我试图了解为什么无法将会话文件保存在自定义位置。
在我的 PHP 配置中,我看到我已session.save_path
设置为/var/lib/php/session
,但我希望我能够在执行时覆盖它。
真正让我生气的是会话文件被创建(所以文件权限应该没问题),但没有写入。
我在 nginx + php-fpm (7.0) 之上运行 Symfony 3.2.2。
为什么会这样?我应该使用任何其他设置,以便 php 能够覆盖此配置并将其会话文件写入其他地方吗?
从跟踪中我看到:
NativeSessionStorage ->start()
被调用并执行session_start
(返回true)- 然后
SessionHandlerProxy ->read($sessionId)
调用,调用时抛出异常$this->handler->read($sessionId);
。
php - PHP FPM Nginx 无法上传超过 2 GB 的文件
我正在使用带有 php 5.6 和 nginx/php fpm 的 64 位 CENT 操作系统。
我在 VPS 中运行 owncloud 实例,一切运行顺利,除了大小超过 2 GB 的任何文件都没有上传并出现网关错误,我调整了所有设置,如
https://github.com/owncloud/documentation/wiki/Uploading-files-up-to-16GB
所有的值都设置好了,仍然每当 php-fpm 将文件写入临时目录时,它恰好停在 2 GB,有时是 2.1 或 2.2 但不是在那之后,它不是超时问题,有时如果我上传 7 GB 的文件,它上传了几个小时,进度条没有任何问题,直到 100% 然后停止,检查我可以看到的 tmp 文件夹,
cd /var/www/owncloud/temp/
[root@files temp]# ll -ah
-rw------- 1 nginx nginx 2.2G 2 月 9 日 17:46 phpyHKRQD
我在这里超级困惑,为什么 php 在 64 位环境中会停止在 2 GB。
php - MongoDB PHP 驱动程序未在 fpm 中加载 - 但在 cli 中加载
安装的系统和工具如下:
- Linux 服务器
Ubuntu 16.04.1 LTS
php7.0
mongoDB version v3.2.12
mongoDB php driver 1.2.5
.
我已经小心地添加extension=mongodb.so
了/etc/php/7.0/fpm/php.ini
和/etc/php/7.0/cli/php.ini
。
然后我有一个文件info.php
,其中包含<?php phpinfo(); ?>
所以php -f info.php
返回 mongoDB 已正确加载,我可以实例化各种类并使用它们。
但是如果将文件加载到网络浏览器www.myserver.com/info.php
中,我找不到 mongoDB 部分。事实上,所有 mongoDB-PHP-driver 代码都失败了。
是因为没有为 php/fpm 正确安装 MongoDB-php-driver 吗?还是因为MongoDB 本身没有正确安装?
非常感谢
php - 尽管有 php.ini 设置,PHP 没有记录脚本错误
我将 PHP-FPM 与 NGINX 一起使用,但我无法让错误日志与 PHP-FPM 一起正常工作。
这是我php.ini
的,相关部分:
(PHP-FPM主进程加载的配置)的相关片段www-pool.comf
:
/var/www/logs/
可写www-data
- 用户 PHP-FPM 和 web 服务器正在运行。
现在,如果我这样做index.php
:
error_log('Some error');
错误消息可以/var/www/logs/php-scripts.error.log
毫无问题地找到。但是,当我尝试像这样触发错误时:
trigger_error('Some error', E_USER_WARNING);
该错误未记录在日志文件中。此外,当我启动故意破坏的 PHP 脚本时,我在屏幕上收到 500 Internal Server Error,但 PHP 错误日志中没有记录任何内容,例如:
请注意上面的缺失;
-应该在错误日志中报告错误,我只收到 500 Internal Server Error 并且日志中没有输出。
你能帮忙吗?谢谢。
nginx - Symfony3 数据库调用需要很长时间,它使整个站点停止工作。如何在一定时间后关闭连接?
我的服务器设置是 php7.0-fpm 和 nginx,上面运行着 symfony。
我只是使用原始 pdo 连接
我的一个 SQL 查询需要很长时间,同时在此期间还关闭了站点。
我想我需要更改一些配置,但我有点 sys-admin/ops 初学者。
我尝试添加到我的 php.ini
我尝试添加=>
在我的 symfony config.yml 中。
都没有用!
还有另一种设置超时的方法吗?还是有其他事情出错了?
php - 无法在 ubuntu 16.04 数字海洋水滴上安装 php5-fpm
我正在尝试设置 phppgadmin 并且它需要 php5-fpm 但因为我有 ubuntu 16.04 并且它带有 php 7。所以当我尝试运行 install php5-fpm 它给我以下错误:
我不能使用 php7-fpm,因为 phppgadmin 只需要 php5-fpm。当我运行 sudo apt-get install php-fpm 它安装 php7-fpm 。我正在使用 nginx 作为网络服务器。我尝试了很多 ppa,但没有一个对我有用。
php - 部署/更改 php 文件后 php5-fpm 性能低
我们正在运行 nginx + php5-fpm,作为部署过程的一部分,我们使用符号链接指向最新版本的 PHP 代码。为了避免在部署新版本时更改文件出现问题,我们使用如下的 nginx-config,其中使用 $realpath_root 将真实文件路径发送给 php-fpm:
当我们使用 AWS 实例时,这种设置在去年运行良好。现在我们切换到 Google Cloud,每次部署新版本时,我们的服务器响应时间都会增加 2-3 倍。使用(其中 17 是主进程的进程 ID)重新加载 PHP-fpm 后kill -USR2 17
,响应时间恢复到正常值。
任何建议如何在每次发布后不重新启动 php-fpm 工作进程的情况下解决这个问题?
最好的,托拜厄斯
php - Laravel 5.2 + Nginx + PHP7 + PHP7.0-FPM - 执行的代码不同于硬盘
我有一个意外的行为,Laravel执行的代码与更新的代码不同。似乎 PHP7.0-FPM 或其他组件将其保存在内存中,只有硬重启机器才会刷新代码。
即我有一个文件“SomeController.php”
执行 git pull 后,新文件现在是:
但是在运行代码输出时仍然显示version1
我试过了:
sudo service php7.0-fpm reload //no success
sudo service php7.0-fpm restart //no success
sudo service nginx restart //no success
sudo reboot //the only thing that works
这绝对是某种代码缓存问题,因为每次硬重启都能解决这个问题。
据我了解sudo service php7.0-fpm reload
应该做的工作。
任何建议将不胜感激。
更新 - 每个评论的 nginx 配置
nginx.conf 内容
//在站点可用/启用下 - 设置是
php - php 7.0 fpm 用于池不工作的单独错误日志
我在 Sentrifugo 的一些 php 页面上获得了 500 状态,为了找出问题所在,我尝试设置错误日志记录
可以在这个 gist中找到配置
但是,在我得到 500 的页面上,我在这些文件中都看不到任何日志条目
工作池日志目录为空
我所看到的只是 access.log 中记录的 500 状态,根本没有任何信息可以帮助我进行故障排除
/var/log/nginx/foo/error.log 中也没有条目
更新
所有日志目录都可以由各自的所有者写入
是否display_errors
按照答案之一中的说明对设置进行了更改,但这仍然没有为故障排除提供任何有用的日志输出。
这是摘录var/log/php-fpm/www.acccess.log
php - Cent OS 7.3 无法创建 php-fpm.sock
我正在尝试在我关注的 centOS 7.3 服务器中安装 mysql+ nginx +php+php-fpm
https://sg.godaddy.com/help/build-a-lemp-stack-linux-nginx-mysql-php-centos-7-17349
它未能创建 /run/php-fpm/php-fpm.sock
你能帮我修一下吗?