WT-NMP - PHP-CGI 随机停止运行且无错误日志

WT-NMP - PHP-CGI 随机停止运行且无错误日志

我们最近安装了 WT-NMP,目前正在使用 php 5.4.24 运行 Php-Cgi。

我们正在运行相当简单的 php 脚本,测试时一切运行良好。

周末我们想让服务器运行更长时间,以便对其进行测试。周五一整天服务器和脚本运行良好,但周六晚些时候,php-cgi 停止运行。

错误日志 (C:\WT-NMP\log) 中没有错误。在配置 (php.ini) 中,我设置了以下选项:error_reporting = E_ALL display_errors = On display_startup_errors = On log_errors = On html_errors = On error_log = "c:/wt-nmp/log/php_error.log"

我们还有标准的 nginx.conf 错误日志:access_log“c:/wt-nmp/log/nginx_access.log”; error_log“c:/wt-nmp/log/nginx_error.log”warn;

因此,由于日志目录是空的,我假设正在运行的 php 脚本和常规 nginx 操作不会导致 php-cgi 停止。

所以我的问题是:还有什么原因会导致 php-cgi 停止运行?我们是否可以启用其他日志选项来帮助我们追踪此问题?我们还应该查看其他日志位置吗?

谢谢!

答案1

作为野生型NMP,我可以告诉你野生型NMP是 Windows 开发堆栈,不应在生产服务器中使用。

Php-cgi 可能因多种原因(操作系统、内存、网络)而停止,这些原因与您的 PHP 代码无关。在 Linux 生产服务器上,有一个进程管理器 (php-fpm) 可以监控/重新启动/记录此类崩溃的进程。WT-NMP 服务器管理器目前还不具备此功能。

没有配置指令可以帮助您调查此问题。任何调查都应从操作系统级别开始。

解决方法是,在 conf/php.ini 中,增加 memory_limit,禁用所有不必要/不稳定的 php 扩展,尤其是 xcache、xdebug 和 opcache

更新:最新版本野生型NMP现在监视并重新启动崩溃的 php-cgi 进程。

答案2

以下设置适用于Windows 2012 R2 Server !!!

在此处输入图片描述

控制面板->系统->高级系统设置->高级->环境变量->系统变量->新建->变量名:PHP_FCGI_MAX_REQUESTS & 变量值:0

答案3

还有什么原因可能导致 php-cgi 停止运行?

这是由 PHP 中的错误引起的。php-cgi 的维护确实不太好。

是否有其他日志选项可供我们启用,以帮助我们追踪此问题?是否还有其他日志位置值得我们查看?

不。您可能会在 Windows 事件日志中找到一些东西。windbg使用php-dev-sdk(调试符号)运行。 http://www.windbg.org/

如果你发现了什么,请附上完整的调试跟踪并报告错误https://bugs.php.net/report.php

答案4

这是与

“Visual C++ Redistributable 安装 Microsoft C 和 C++”

根据 PHP 版本,您应该拥有兼容 Windows 框架的版本

在我的情况下,PHP 8 直到我安装后才运行

“Visual Studio 2015、2017、2019 和 2022”

来自此链接: https://aka.ms/vs/17/release/vc_redist.x64.exe

官方网站

相关内容