【问题标题】:xhprof on WampServer 2.2WampServer 2.2 上的 xhprof
【发布时间】:2012-05-11 22:22:31
【问题描述】:

我正在尝试让 XHProf 在我的 WampServer 上工作。

我已从:http://dev.freshsite.pl/php-extensions/xhprof/file/details/xhprof-0103-for-php-53-vc9.html 下载了 dll,并在 C:\wamp\bin\php\php5.3.9\ext 中重命名为 xhprof.dll(这是 phpinfo() 中为扩展列出的目录)

来自 phpinfo() 的 php.ini 路径: C:\wamp\bin\apache\Apache2.2.21\bin\php.ini

该文件中列出的扩展名:

 extension=php_curl.dll
 extension=xhprof.dll
 ;extension=php_dba.dll
 extension=php_mbstring.dll
 ;extension=php_exif.dll
 ;extension=php_fileinfo.dll
 extension=php_gd2.dll
 ;extension=php_gettext.dll
 ;extension=php_gmp.dll
 ;extension=php_intl.dll
 ;extension=php_imap.dll
 ;extension=php_interbase.dll
 ;extension=php_ldap.dll
 ;extension=php_ming.dll
 ;extension=php_mssql.dll
 extension=php_mysql.dll
 extension=php_mysqli.dll
 ;extension=php_oci8.dll
 ;extension=php_oci8_11g.dll 
 ;extension=php_openssl.dll
 ;extension=php_pdo_firebird.dll
 ;extension=php_pdo_mssql.dll
 extension=php_pdo_mysql.dll
 ;extension=php_pdo_oci.dll
 ;extension=php_pdo_odbc.dll
 ;extension=php_pdo_pgsql.dll
 extension=php_pdo_sqlite.dll
 ;extension=php_pgsql.dll
 ;extension=php_phar.dll
 ;extension=php_pspell.dll
 ;extension=php_shmop.dll
 ;extension=php_snmp.dll
 ;extension=php_soap.dll
 ;extension=php_sockets.dll
 ;extension=php_sqlite.dll
 ;extension=php_sqlite3.dll
 ;extension=php_sybase_ct.dll
 ;extension=php_tidy.dll
 ;extension=php_xmlrpc.dll
 ;extension=php_xsl.dll
 ;extension=php_zip.dll

但是当我重新启动 WampServer 和与之关联的服务时,phpinfo() 中没有出现 XHProf 信息

我正在寻找解决此问题的方法,或者寻找进一步的方法来调查此扩展程序未加载的原因

谢谢

【问题讨论】:

  • 您的 PHP/Apache 错误日志中有任何错误吗?您正在运行什么版本的 WampServer,在什么操作系统上运行?
  • 我在 Windows 7 64bit 上运行 WampServer 2.2。
  • 看来我在 apache_error.log 中确实有一个错误:PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.3.9/ext/xhprof.dll' - %1 不是有效的 Win32 应用程序。\r\n 在第 0 行的未知中

标签: php wampserver xhprof


【解决方案1】:

您使用的是 64 位的 WampServer,但 xhprof.dll 是为 32 位架构制作的,不兼容。在我自己的 Windows 7 机器上,我在 apache_error.log 中收到此错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.3.8/ext/php_xhprof.dll' - %1 is not a valid Win32 application.\r\n in Unknown on line 0
<br />
<b>Warning</b>:  PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.3.8/ext/php_xhprof.dll' - %1 is not a valid Win32 application.
 in <b>Unknown</b> on line <b>0</b><br />

目前似乎没有 64 位版本,因此您只能选择可以执行的操作。第一个选择是使用 32 位版本的 WampServer(在开发机器上我看不出有太多缺点)。二是在新鲜现场甜言蜜语,编译/支持64位。祝你好运!

【讨论】:

  • 有道理 - id 检查了所有其他匹配但忘记了 x86 与 64
【解决方案2】:

感谢伦纳德·查利斯。几个小时以来,我遇到了类似的错误。我需要使用 php_ibm_db2.dll。将其添加到扩展文件夹和 php.ini 文件后。我开始收到错误消息。

无法加载动态库 'c:/wamp/bin/php/php5.3.13/ext/php_ibm_db2.dll' - %1 不是有效的 Win32 应用程序。

我遇到的一些解决方案建议将其放在 system32 文件夹中。那没有帮助。我去了几个论坛和博客。所有建议都失败了。直到我看到你的推荐。这么简单,想不通为什么我没想到。虽然错误信息有点模糊。

顺便说一句,对于那些使用 PHP 到 DB2 环境的人,可以在此处获取 dll 文件:http://sourceforge.net/projects/db2mc/files/

确保您还安装了 Microsoft Visual C++ 2010 SP1 Redistributable Package (x86) - vcredist_x86.exe。

http://www.microsoft.com/en-us/download/details.aspx?id=8328

我希望这对将来可能遇到类似问题的任何人有所帮助。感谢所有为本论坛做出贡献的人。这是一个很大的帮助。

【讨论】:

    猜你喜欢
    • 2016-07-04
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2013-08-27
    • 1970-01-01
    • 2014-10-26
    • 2014-10-03
    相关资源
    最近更新 更多