drupal - 如何为挂起的站点调试 nginx/php-fpm?

标签 drupal nginx php

我需要一些关于如何调试挂起的新服务器配置的提示。这个站点本身就是一个非常大的 Drupal 实例。在 APC 功能下,每页加载 45+ MB 的 PHP 内存很大。

该网站本身确实在另一台服务器上运行 nginx/php-fpm/apc。我正在设置的新服务器具有自定义 PHP 5.3 版本。

nginx配置为监听80端口,将fastcgi请求传递给127.0.0.1:9000。这行得通。

在 Drupal 根目录中,我有一个带有 phpinfo() 的纯 PHP 文件;在里面。我可以直接加载此 PHP 文件并确认 PHP 构建看起来不错。

没有 nginx 错误,但是 php-fpm 错误日志会在页面挂起时显示:

[2012 年 12 月 22 日 17:41:16] 警告:[pool www] child 19760,脚本 '/var/www/mysite/public_html/index.php'(请求:“GET/index.php”)执行速度太慢(5.068781 秒),记录

除了这个错误,什么都没有。

因此,考虑到正常的 PHP 脚本加载正常,但加载 Drupal 应用程序(直接加载到 index.php,甚至不尝试干净的 url)挂起,我正在寻找有关调试方法的建议。

最佳答案

当您在 php-fpm 错误日志中看到该错误日志条目时,它实际上提供了缓慢 php 进程的有用堆栈跟踪。

在您的 php-fpm 配置文件(例如/etc/php-fpm.d/www.conf)中,查看 request_slowlog_timeoutslowlog 设置。第一个定义在请求被视为“慢”之前需要多少秒,后者定义堆栈跟踪将写入的文件。

如果您查看 php-fpm slowlog 文件,您将更好地了解您的进程挂起的方法调用堆栈中的确切位置。

关于drupal - 如何为挂起的站点调试 nginx/php-fpm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005129/

相关文章:

google-chrome - Chrome 过度缓存由 nginx 提供的 .json 文件

javascript - 我收到 NS_BASE_STREAM_CLOSED 错误时缺少什么?

ruby-on-rails - 如何让 nginx 根据 Redis 缓存返回 304 Not Modified?

php - Magento 相关产品未显示

apache - Drupal迁移问题

drupal - Flickr 在 drupal 中?

drupal - 如何删除生成项目生成的虚拟内容?

drupal - 如何从面包屑中删除HOME

php - 使用 insert() 方法通过 PHP Doctrine\DBAL 2 插入 DateTime 值

php - 从 php 发送短信时请求错误