strace源 mod

2012 年 10 月 29 日5930

如果跟踪php命令行,或者是fastcgi,应该相对容易多,因为这两种情况下都有独立的PHP进程。

但是跟踪Apache+mod_php5相对就麻烦一些,因为没有独立的PHP进程。如果对httpd守护进程进行strace的话,只会获取到Apache本身的一些系统调用,如查找.htaccess,得不到PHP的系统调用。

有个老外分享了一个视频,跟踪主要分三步:

    通过Telnet与Apache建立连接,但是不要立刻就发送HTTP请求(可以写入头HTTP头,但不要连续两次回车),以免连接过快被断开了;

    新开一个ssh session,root运行

    lsof -p `pidof telnet` | perl -nle 'print "netstat -anp | grep $1" if m/:(\d+)->/' | sh | perl -nle 'print "strace -p $1" if m/(\d+)\/httpd/' | sh

    回到Telnet,发送HTTP请求

0 0