[英]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看起来也不错。
更新2
看来您现在也可以使用dbg调试php-cli。
LOP。
很多印刷声明。 找出应用程序的挂起位置并在那里进行处理。 如果脚本与终端/ apache进程断开连接,则可以将脚本写入日志文件。
当然,调试器也可以很好地工作;)
我正在使用带有执行跟踪的Xdebug,非常容易设置和使用
生成跟踪可能需要一些时间,而且跟踪的时间非常长,但是如果成功,请隔离一个可疑行为严重的代码,会更容易。 Xdebug和执行跟踪
另一个很酷的事情是,您可以进行性能检查,并查看zend引擎在代码中花费的时间很长:
有很多关于如何在Google上使用Xdebug的教程。
通常,在PHP上使用套接字时,可能会出错。 根据运行脚本的服务器以及php的配置方式,目标服务器是否会发送正确的答案,是否需要设置超时时间? 检查您是否遵循贝宝的API。
如果是外部/环境问题,那么您可能最终会花费大量时间来调试您本来没有缺陷的代码;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.