找不到config.m4."在apd安装过程中运行phpize时,使用pecl


"Cannot find config.m4." while running phpize in the installation of apd using pecl

我试图在PHP中访问rename_function,为此我需要PECL APD。我正在运行Ubuntu 14.04 LTS.

我试图运行sudo pecl install apd,但我得到:

<>之前下载apd-1.0.1。tgz……开始下载apd-1.0.1。TGZ(36643字节)..........完成:36643字节15 .源文件,构建phpize运行:找不到config.m4。确保你运行'/usr/bin/phpize'在最顶层的源目录该模块如果命令显示"phpize: not found"失败,那么你需要安装php5-dev包。你可以运行'apt-get install php5-dev'作为root用户之前

我应该在某个目录下运行这个命令吗?

这次我试着打开详细选项,以防日志中有线索:

<>之前/usr/bin/pecl -vvvvv安装apd之前<>之前警告:file_exists():无法找到包装器"通道"-您在配置PHP时忘记启用它了吗?在PEAR/Downloader/Package.php第1518行警告:is_file():无法找到包装器"通道"-您在配置PHP时忘记启用它了吗?在PEAR/Downloader/Package.php第1528行警告:is_file():无法找到包装器"通道"-您在配置PHP时忘记启用它了吗?在PEAR/Downloader/Package.php第1528行下载"http://pecl.php.net/get/apd-1.0.1.tgz"下载apd-1.0.1。tgz……开始下载apd-1.0.1。TGZ(36643字节)..........完成:36643字节+ cp/tmp/pear/temp/tmpNUpEpz/apd-1.0.1/LICENSE/usr/share/php/doc/apd/. tmplicensechmod 664/usr/share/php/doc/apd/.tmpLICENSE添加到事务:重命名/usr/share/php/doc/apd/。tmpLICENSE/usr/share/php/doc/apd/LICENSE添加到事务:installed_as LICENSE/usr/share/php/doc/apd/LICENSE/usr/share/php/doc/apd+ cp/tmp/pear/temp/tmpNUpEpz/apd-1.0.1/README/usr/share/php/doc/apd/. tmpreadme添加到事务:chmod 664/usr/share/php/doc/apd/.tmpREADME添加到事务:重命名/usr/share/php/doc/apd/。tmpREADME/usr/share/php/doc/apd/README添加到事务:installd_as README/usr/share/php/doc/apd/README/usr/share/php/doc/apd+ cp/tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprop/usr/bin/. tmppprop+ chmod +x/usr/bin/.tmppprofp添加到事务:chmod 775/usr/bin/.tmppprofp添加到事务:重命名/usr/bin/。tmppprofp/usr/bin/pprofp添加到事务:installed_as pprofp/usr/bin/pprofp/usr/bin/+ cp/tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprof2calltree/usr/bin/.tmppprof2calltree+ chmod +x/usr/bin/.tmppprof2calltree添加到事务:chmod 775/usr/bin/.tmppprof2calltree添加到事务:重命名/usr/bin/。tmppprof2calltree/usr/bin/pprof2calltree添加到事务:installed_as pprof2calltree/usr/bin/pprof2calltree/usr/bin/15 .源文件,构建在/tmp/pear/temp/pearf7LGca中构建phpize运行:找不到config.m4。确保在模块的顶级源目录中运行'/usr/bin/phpize'如果命令失败'phpize: not found',那么你需要安装php5-dev包,你可以通过运行'apt-get install php5-dev'作为根用户回滚12个文件操作来完成+ rm/usr/share/php/doc/apd/. tmplense+ rm/usr/share/php/doc/apd/.tmpREADME+ rm/usr/bin/.tmppprofp+ rm/usr/bin/.tmppprof2calltree错误:"phpize"失败警告:unlink(/tmp/glibctestRdKE0K):在214行的System.php中没有这样的文件或目录警告:unlink(/tmp/pear/temp/pearf7LGca):在214行的System.php中没有这样的文件或目录

这将是运行APD作为PHP分析器的先决条件的所有内容的简短总结,我希望它能帮助您的需求。此摘要适用于PHP 5.6.2 APD 1.0.1,对于其他版本可能不正确。

首先,如果你没有确保这两个,不要启动它:

    禁用Zend平台或任何其他PHP优化器。一般来说,你需要禁用所有的Zend扩展。
  • 安装PHP (--enable-debug)的调试版本

如果您有一个可用的PEAR设置,则需要像本文中那样设置APD。不要忘记尝试发行包。否则APD的构建如下:

  • 提取tarball。
  • 运行<apache root>/bin/phpsize
  • 运行./configure(如果配置失败,添加--with-php-config=<apache root>/bin/php-config)
  • 编译和安装所有使用<>之前使制作安装
  • 编辑php.ini并至少添加一个<>之前zend_extension =/apd.soapd.statement = 1apd.tracedir =/tmp/apd-traces
  • 创建php.ini
  • 指定的输出目录

现在您需要重新启动Apache,但在此之前,请检查APD扩展是否正常工作。只需运行PHP

<>之前/bin/php之前

如果扩展正确加载,则不应给出警告。如果您得到类似"apd。所以"扩展无法加载,这是有问题的。检查你是否编译了正确的Apache/PHP版本,并使用相同的版本。

如果PHP没有提示输入:

<?php phpinfo(); ?>

并检查一些关于APD的行。如果你找到他们,你就完成了。

你还需要一些跟踪,以便开始跟踪,你需要你的Apache允许PHP模块加载APD。接下来,您需要确定要跟踪的脚本。在脚本的顶部添加APD调用:

apd_set_pprof_trace();

然后提出一些请求,并再次删除该语句,以避免造成进一步的伤害。现在看一下跟踪目录。您应该在这里找到命名方案为pprof[0-9]*.[0-9]的文件。解码他们使用pprofp工具从您的APD源tarball。例子:

<>之前/bin/php/pprop之前

必要时重定向标准输出。使用-t而不是-u(摘要输出)来获得调用树。当您使用-t创建跟踪时,您也会得到一个摘要输出,但它不包含每次调用的持续时间。我建议总是同时创建调用树和摘要跟踪。

希望有帮助,我建议你几乎阅读上面提到的链接

编辑:

phpize命令应该在扩展源目录的顶层运行(该源目录应该包含文件名config.m4)。有关更多信息,请参阅此。

根据错误:

如果phpize: not found命令失败,则需要安装php5-dev包。

您可以通过以root用户运行apt-get install php5-dev来实现

我认为你应该安装模块开发PHP通过:

sudo apt-get install php5-dev

这应该为您提供编译perl扩展源所需的phpize二进制文件。确保在PATH