PHP-FPM 不写入错误日志

2023-12-01

我刚刚安装了一个 nginx+php-fpm 服务器。一切看起来都很好,除了 PHP-FPM 从不将错误写入其日志。

fpm.conf

[default]
listen = /var/run/php-fpm/default.sock
listen.allowed_clients = 127.0.0.1
listen.owner = webusr
listen.group = webusr
listen.mode = 0666
user = webusr
group = webusr
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.status_path = /php/fpm/status
ping.path = /php/fpm/ping
request_terminate_timeout = 30s
request_slowlog_timeout = 10s
slowlog = /var/log/php-fpm/default/slow.log
chroot = /var/www/sites/webusr
catch_workers_output = yes
env[HOSTNAME] = mapsvr.mapking.com
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/php-fpm/default/error.log
php_admin_flag[log_errors] = on

nginx.conf

server
{
  listen        80 default_server;
  server_name   _;

  charset       utf-8;
  access_log    /var/log/nginx/access.log rest;

  include       conf.d/drops.conf.inc;

  location      /
  {
    root        /var/www/sites/webusr/htdocs;
    index       index.html index.htm index.php;
  }

  # pass the PHP scripts to FastCGI server listening on socket
  #
  location      ~ \.php$
  {
    root           /var/www/sites/webusr/htdocs;
    include        /etc/nginx/fastcgi_params;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME /htdocs/$fastcgi_script_name;
    if (-f $request_filename)
    {
      fastcgi_pass   unix:/var/run/php-fpm/default.sock;
    }
  }

  location      = /php/fpm/status
  {
    include        /etc/nginx/fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass   unix:/var/run/php-fpm/default.sock;
  }

  location      = /php/fpm/ping
  {
    include        /etc/nginx/fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass   unix:/var/run/php-fpm/default.sock;
  }

  # redirect server error pages to the static page /50x.html
  #
  error_page    500 502 503 504  /50x.html;
  location      = /50x.html
  {
    root        /usr/share/nginx/html;
  }
}

我制作了一个错误的 php 脚本并运行,并在 Web 浏览器上看到错误输出。此外,nginx 错误日志还使用相同的消息指出 fpm 的 stderr 输出。我已检查用户是否具有对指定日志文件夹的写入权限(我什至尝试过 777)。就连指定的error.log文件也已经被php-fpm成功创建了。然而,无论 php 脚本发生了什么令人发指的错误,日志文件始终是空的。

这是怎么回事?

【很久之后才找到原因】

这是许可。将所有者更改为网站的用户解决了问题。


这对我有用:

; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
; Default Value: no
catch_workers_output = yes

Edit:

要编辑的文件是配置所需池的文件。 默认情况下:/etc/php-fpm.d/www.conf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP-FPM 不写入错误日志 的相关文章

随机推荐

  • MySQL 中的数组

    我想将数组存储在记录中 Table1 ID Name Friends friends should be an array 1 Bill 2 3 2 Charles 1 3 3 Clare 1 我希望能够进行这样的搜索 SELECT FRO
  • 使用加载了 Ajax 内容的 jQuery“点击”功能?

    我有一个通过 Ajax 加载的 php 文件的内容 其中包含 HTML 和 JavaScript 我有一个按钮
  • 在 Visual Studio Web 测试中转义上下文参数格式

    我正在尝试弄清楚如何通过 Visual Studio Web 测试在 POST 中传递特定的数据 而不将其识别并视为上下文参数 POST 包含一个 字符串 主体 它是一个 json 文档 身体的一部分包括如下内容 My Attribute
  • Emacs 区域高亮显示

    有没有办法在字体锁定模式打开的缓冲区中突出显示文本中的字符串 但不是所有此类字符串 假设我有一个 SQL 模式的缓冲区 我想突出显示其中的一个字符串 下面的代码不起作用 set text properties 10 20 face hi y
  • 康康舞能力在单独的文件中

    是否可以在单独的文件中定义能力并将其包含在初始化方法内的ability rb文件中 下面的代码返回 尝试并得到 未定义的方法 can 能力 rb def initialize user include MyExtension Somethi
  • 简化反三角代码(While 循环)

    我已经成功创建了一个代码来使用 while 循环打印水平翻转的三角形 现在虽然它有效 但我想知道是否可以简化它 即不使用 store 变量 但我想用 while 循环保留它 当前代码是 myLen int input Enter the n
  • 使用 firebase-queue 返回任务结果

    我正在使用 Firebase 开发移动应用程序 在移动应用程序中 我需要根据用户的手机号码注册用户 类似于 Whatsapp 我打算使用 Nexmo 来验证用户的手机号码 验证号码涉及两个步骤 将用户手机号码发送到 Nexmo API 成功
  • Hadoop 选项没有任何效果(mapreduce.input.lineinputformat.linespermap、mapred.max.map.failures.percent)

    我正在尝试实现一个 MapReduce 作业 其中每个映射器将占用文本文件的 150 行 并且所有映射器将同时运行 此外 无论有多少映射任务失败 它都不应失败 这是配置部分 JobConf conf new JobConf Main cla
  • 承诺链接:在下一个回调中使用前一个承诺的结果[重复]

    这个问题在这里已经有答案了 我正在使用直接的 ES6 Promise 使用 es6 promise polyfill 库 并且在访问链接的 Promise 中的先前 Promise 的结果时遇到了问题 这个问题在 Angular Q 的上下
  • JavaScript - 循环比逐行离散编写更快吗?

    忽略所有代码的简洁性和可读性 哪个脚本会更快完成 This for var i 0 i lt 10 i do that thing Or this do that thing do that thing do that thing do t
  • 确定连续日期

    我有一个清单datetime dates我需要检查每个日期是否来自下一个连续月份 希望代码中我的意思很清楚 import datetime from unittest import TestCase def is consecutive d
  • 如何在 mongoDB 中获取多个匹配过滤器计数

    我收集了大约 50000 份文档 集合架构如下所示 param1 Boolean param2 Boolean param3 Boolean param4 Boolean etc 我应该如何查询数据库 以获取每个匹配的参数计数 目前 我正在
  • 如何使用 JavaScript 删除加载视图中的所有 Chrome 通知?

    这是我在 Google Chrome 中显示通知的代码 如何在代码中关闭通知 document addEventListener DOMContentLoaded function if Notification alert Desktop
  • Facebook 提供商未配置。确保添加“facebook_application_id”字符串

    我正在使用 Firebase UI 登录并尝试在我的 Android 应用程序中实现 Facebook 登录 启动 firebase ui 活动时我得到 java lang IllegalStateException Facebook 提供
  • 用于个人粉丝页面的 Facebook Messenger 聊天机器人

    我使用 Dialogflow 创建了一个聊天机器人 将其连接为我的个人粉丝页面 我的应用程序的粉丝页面 的 Facebook Messenger 聊天机器人 我通过了第一次审核并获得批准 下一步是 验证我的业务 我不是一家企业 我只是一个个
  • 在窗口应用程序中使用 HttpContext.Current.Server.MapPath?

    我可以在窗口应用程序中做这样的事情吗 HttpContext Current Server MapPath Email ForgotPassword txt 该项目是一个基于网络的应用程序 我的下一个项目基本上是一个窗口服务 寻求建议 要获
  • 搜索列表列表中一列的最大数字[重复]

    这个问题在这里已经有答案了 我有一份清单 list 1 2 5 2 8 7 3 6 9 我想找到第三列的最大数字 所以我尝试了 zipped zip list print max zipped 2 但它没有显示最大的数字 有人知道原因和解决
  • rpy2 在 debian 上安装问题

    我已经尝试了所有我能想到的在 debian 服务器上安装 RPy2 的安装方法 但无论如何我都收到相同的消息 我已经在我的Mac上成功安装并使用了它 我可能缺少什么吗 start Processing rpy2 Running setup
  • 如何异步返回一个sequelize实例?

    我似乎无法正确通过sequelize对象从service js文件到index js续集变量 有什么地方看起来不合适吗 index js let sequelize let contractModel async gt sequelize
  • PHP-FPM 不写入错误日志

    我刚刚安装了一个 nginx php fpm 服务器 一切看起来都很好 除了 PHP FPM 从不将错误写入其日志 fpm conf default listen var run php fpm default sock listen al