2014-10-07 51 views
2

​​很有用,但它不包括使用fopen或file_get_contents打開的文件。如何找出應用程序打開了哪些文件?

我也嘗試過使用strace,但我似乎無法回家在特定的PHP過程中。

更具體地說,我使用twig進行模板化,我想知道按什麼順序包含哪些文件。

我到目前爲止試圖使用像這樣的strace,但我得到的權限錯誤附加到過程。

<?php 

$pid = getmypid(); 

echo `strace -p {$pid} 2>&1 > log &`; 

file_put_contents('afile', 'foobar'); 

輸出...

strace的:附:ptrace的(PTRACE_ATTACH,...):操作不允許 無法附加到進程。如果您的uid與目標 進程的uid匹配,請檢查/ proc/sys/kernel/yama/ptrace_scope或 作爲root用戶的設置。有關詳細信息,請參閱 /etc/sysctl.d/10-ptrace.conf

+0

我會假設小枝可以給你這個信息。 – Marek 2014-10-07 09:46:56

+0

也許,我現在正在看那個角度,但即使如此,我認爲這將在更廣泛的背景下有用。 – 2014-10-07 09:50:44

+0

這會增加潛在的大開銷。您仍然可以使用xdebug的功能跟蹤功能。 – Marek 2014-10-07 11:28:10

回答

0

您可以使用一個經典的解決方法:

包裝所有文件打開功能,例如:my_fopen,並做記錄有。

只需幾行代碼+搜索&即可替換代碼庫。

+0

謝謝,這是一個很好的提示,但代碼庫非常大,並且包含大量第三方供應商代碼。 – 2014-10-08 11:28:01

相關問題