遇到了php-fpm register_shutdown_function()的一个bug:
|
|
php-fpm输出如下
在cli模式下输出正常
去翻翻源码,找到getcwd的定义
函数定义的位置在:ext/standard/dir.c
的364行
可见,此方法其实是关联到一个ZEND方法VCWD_GETWD()
PHP内核定义了十分之多的宏,所以需要找到真正定义还得费点劲
最终找到真正定义位置,在Zend\zend_virtual_cwd.h
|
|
找到CWDG定义
可以看到,方法是获取一个全局变量,cwd_globals
根据上面源码的阅读,可以进一步推测应该是shutdown_function的时候cwd_globals已经被修改了
这种情况只发生在php-fpm模式下,cli未发现