繁体   English   中英

如何对PHP进程进行故障排除

[英]How to troubleshoot PHP processes

我已经在PHP中为一家做一些事情的小商店构建了一个脚本。

启动数据库连接,然后查询数据库两次。 读/写会话使用fsockopen()向PayPal PDT发出请求,解析结果,将订单保存到db

经过测试后,服务器停止加载。 支持让我知道有20个PHP进程正在运行(这是限制)由于某种原因,它们无法正常关闭

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
bobbysue 970 0.0 0.1 23836 8708 ? S 15:46 0:00 /usr/local/bin/php5.cgi index.php
bobbysue 1574 0.0 0.1 23836 8708 ? S 15:47 0:00 /usr/local/bin/php5.cgi index.php
bobbysue 2328 0.0 0.1 23840 8708 ? S 15:47 0:00 /usr/local/bin/php5.cgi index.php
bobbysue 4031 0.0 0.1 23836 8704 ? S 15:49 0:00 /usr/local/bin/php5.cgi index.php
bobbysue 7112 0.0 0.1 23836 8708 ? S 15:51 0:00 /usr/local/bin/php5.cgi index.php...

1)如何解决脚本问题,以查看问题所在? 2)如何确保启动过程正确终止? 谢谢Rich

您可以使用PHP调试器。

DBG是相当不错的。 我使用PHPEd,但我相信DBG也会以其他方式工作。

http://www.php-debugger.com/dbg/

http://www.php-debugger.com/dbg/installation.php

http://www.nusphere.com/products/php_debugger.htm

还有其他一些不错的免费或近乎免费的PHP调试选项:

http://www.google.com/search?client=opera&rls=zh-CN&q=php+debugger&sourceid=opera&ie=utf-8&oe=utf-8

或者,如果这些是守护进程,或者未在浏览器中运行,则可能必须将信息写入日志文件。 我不确定是否可以调试-检查Google。

编辑

从评论中可以看出,XDebug看起来也不错。

http://xdebug.org/docs/

更新2

看来您现在也可以使用dbg调试php-cli。

LOP。

很多印刷声明。 找出应用程序的挂起位置并在那里进行处理。 如果脚本与终端/ apache进程断开连接,则可以将脚本写入日志文件。

当然,调试器也可以很好地工作;)

我正在使用带有执行跟踪的Xdebug,非常容易设置和使用

生成跟踪可能需要一些时间,而且跟踪的时间非常长,但是如果成功,请隔离一个可疑行为严重的代码,会更容易。 Xdebug和执行跟踪

另一个很酷的事情是,您可以进行性能检查,并查看zend引擎在代码中花费的时间很长:

Xdebug和性能分析

有很多关于如何在Google上使用Xdebug的教程。

通常,在PHP上使用套接字时,可能会出错。 根据运行脚本的服务器以及php的配置方式,目标服务器是否会发送正确的答案,是否需要设置超时时间? 检查您是否遵循贝宝的API。

如果是外部/环境问题,那么您可能最终会花费大量时间来调试您本来没有缺陷的代码;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM