我正在尝试安装https://github.com/arnaud-lb/php-memory-profiler在 FreeBSD 9.2 上
梨安装后http://pecl.php.net/get/memprof-1.0.0.tgz
得到这样的错误:
In file included from /usr/local/include/php/Zend/zend_compile.h:690,
from /usr/local/include/php/Zend/zend_modules.h:26,
from /usr/local/include/php/Zend/zend_API.h:26,
from /usr/local/include/php/main/php.h:38,
from /tmp/pear/memprof/memprof.c:19:
/usr/local/include/php/Zend/zend_vm_opcodes.h:168:7: warning: no newline at end of file
/tmp/pear/memprof/memprof.c:37:3: error: #error "ZTS build not supported (yet)"
/tmp/pear/memprof/memprof.c:114:3: warning: #warning No support for malloc hooks, this build will not track persistent allocations
/tmp/pear/memprof/memprof.c: In function 'memprof_zend_execute_internal':
/tmp/pear/memprof/memprof.c:695: error: too few arguments to function 'execute_internal'
/tmp/pear/memprof/memprof.c:697: error: too few arguments to function 'old_zend_execute_internal'
/tmp/pear/memprof/memprof.c: In function 'OnChangeMemoryLimit':
/tmp/pear/memprof/memprof.c:724: error: too few arguments to function 'zend_mm_set_heap'
/tmp/pear/memprof/memprof.c:726: error: too few arguments to function 'zend_mm_set_heap'
/tmp/pear/memprof/memprof.c: In function 'memprof_enable':
/tmp/pear/memprof/memprof.c:744: error: too few arguments to function 'is_zend_mm'
/tmp/pear/memprof/memprof.c:751: error: too few arguments to function 'zend_mm_set_heap'
/tmp/pear/memprof/memprof.c: In function 'memprof_disable':
/tmp/pear/memprof/memprof.c:773: error: too few arguments to function 'zend_mm_set_heap'
/tmp/pear/memprof/memprof.c: In function 'zm_startup_memprof':
/tmp/pear/memprof/memprof.c:899: error: too few arguments to function 'zend_register_functions'
/tmp/pear/memprof/memprof.c: In function 'zif_memprof_memory_get_usage':
/tmp/pear/memprof/memprof.c:1297: error: too few arguments to function 'zend_mm_set_heap'
/tmp/pear/memprof/memprof.c:1298: error: too few arguments to function 'zend_memory_usage'
/tmp/pear/memprof/memprof.c:1299: error: too few arguments to function 'zend_mm_set_heap'
/tmp/pear/memprof/memprof.c:1301: error: too few arguments to function 'zend_memory_usage'
/tmp/pear/memprof/memprof.c: In function 'zif_memprof_memory_get_peak_usage':
/tmp/pear/memprof/memprof.c:1317: error: too few arguments to function 'zend_mm_set_heap'
/tmp/pear/memprof/memprof.c:1318: error: too few arguments to function 'zend_memory_peak_usage'
/tmp/pear/memprof/memprof.c:1319: error: too few arguments to function 'zend_mm_set_heap'
/tmp/pear/memprof/memprof.c:1321: error: too few arguments to function 'zend_memory_peak_usage'
*** [memprof.lo] Error code 1
Stop in /tmp/pear/pear-build-ranielrLVRCS/memprof-1.0.0.
ERROR: `make' failed
其他 pecl 和 php 模块和扩展都可以。在 Debian 上 wheezy 安装也可以。 FreeBSD 有问题吗?
答案1
memprof.c:37:3:错误:#error“ZTS 构建尚不支持”
memprof 不支持 PHP 的 ZTS 版本。这意味着 PHP 已使用该--enable-maintainer-zts
选项构建,而 memprof 不支持此选项。
您应该在没有--enable-maintainer-zts
开关的情况下构建 PHP。仅当您在线程服务器中使用 PHP 作为服务器模块(例如 apache 的worker mpm 中的 mod_php)时才需要此开关,但不建议这样做。