我的任務是在不同的評估階段(dev/test/staging/etc)設置各種環境的網站。如何調試永不完成加載的PHP腳本?
但是,在我們的臨時環境中,似乎有一些區別阻止了PHP腳本的完成,因此該頁面從未傳送到瀏覽器。
我想知道是否有一種方法可以輸出記錄切割連接時的某種堆棧跟蹤或回溯,還是有其他一些方法來查明PHP在任何給定點處做了什麼腳本的生命週期?
這是一個Drupal站點,因此它涉及到很多我不熟悉的代碼,並且可能需要花費數小時才能在整個程序中使用die;
命令來查看腳本加載到的位置。
我知道我應該看看環境的差異,但是所有應該有非常相似的配置(Ubuntu 11.04),並且臨時環境似乎完全樂意爲其他PHP站點服務,而這個特定的站點拒絕完成。如果有什麼這個暫存站點有更多的資源可用,其他沒有問題的環境。
UPDATE:對不起,最後發現問題。暫存環境位於不允許通過公共IP訪問自己的VLAN上,無論出於何種原因(仍然困惑於此),它都試圖作爲頁面加載的一部分進行訪問,並且從未完成請求。爲127.0.0.1設置主機文件條目解決了問題。
你看過xdebug嗎? – 2013-02-28 10:34:33
是一個分步調試器的選項嗎? http://xdebug.org/docs/remote – 2013-02-28 10:35:10
如果你想使用'die()',那麼我傾向於採用的方法與猜測1到1000的數字時使用的方法相同。首先開始一半(500),然後如果它沒有達到那個點,那麼這個點必須在之前,並且你再一次(250)等。 – h2ooooooo 2013-02-28 11:07:23