簡體   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