php - PHP脚本在达到某些输出限制后死亡
问题描述
我正在运行一个 Wordpress 网站,其后台进程以 admin 启动POST
。一切正常,直到由于某些原因该过程开始出现奇怪的行为:
- php-fpm 不再登录到我通常的
/var/log/php-fpm/www-error.log
. 记录某些内容的唯一方法是将工作人员输出到主 php-fpmerror.log
。 - 进程终止,没有任何错误、异常或消息。它只是停止记录并且不会完成。
- 注释掉
error_log
指令会增加寿命,把它们放回去会减少它。这就像有某种输出限制。 - 这是非常一致的:死亡点是可以预测的。该过程是一个数组的批处理,对于每个
error_log
指令配置,最后记录的项目总是相同的。
我试图最大化我能想到的所有可能的相关限制:
php_admin_value[post_max_size] = 64M
php_admin_value[output_buffering] = off
php_admin_value[upload_max_filesize] = 64M
php_admin_value[max_input_vars] = 30000
php_admin_value[max_execution_time] = 30000
php_admin_value[memory_limit] = 512M
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
加上wp-config.php
:
set_time_limit(0);
define( 'WP_DEBUG', true );
ini_set("error_reporting", "E_ALL");
ini_set("log_errors", "on");
没有任何变化(即使phpinfo()
显示正确的值)。
我的 php-fpm 被附身了吗?什么变量可以确定输出 x 字节的静默终止?
内存、交换和磁盘空间都可以。
解决方案
推荐阅读
- bash - echo 以非常不同的方式工作
- c# - 如何排列来自多个 json 文件但格式不同的相似数据?
- angularjs - 通过竹子构建调用package.json中的npm脚本触发构建
- android - 如果 json 包含空字符串,则 FCM 推送通知不会到达
- vue.js - Vue.js 一些错误/警告很难调试
- java - 如何在 GET 请求中传递邮递员列表并进入 GetMapping
- python - python中的日期比较
- google-apps-script - 使用脚本在电子邮件中嵌入谷歌表单,就像谷歌在使用选项在电子邮件中包含表单时所做的那样
- typo3 - Typo3 如何获得一个
- 围绕着一个错字链接列表
- angularjs - 在进度条的开始和停止时大声朗读(md-progress-linear)