我需要一些关于如何调试挂起的新服务器配置的提示。这个站点本身就是一个非常大的 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_timeout
和 slowlog
设置。第一个定义在请求被视为“慢”之前需要多少秒,后者定义堆栈跟踪将写入的文件。
如果您查看 php-fpm slowlog 文件,您将更好地了解您的进程挂起的方法调用堆栈中的确切位置。
关于drupal - 如何为挂起的站点调试 nginx/php-fpm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005129/