xhprof на WampServer 2.2

Я пытаюсь заставить XHProf работать на моем WampServer.

Я скачал dll с: http://dev.freshsite.pl/php-extensions/xhprof/file/details/xhprof-0103-for-php-53-vc9.html и переименован в xhprof.dll в C:\wamp \bin\php\php5.3.9\ext (какой каталог указан для расширений в phpinfo())

Путь Php.ini из phpinfo(): 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 и связанные с ним службы, информация XHProf не появляется в phpinfo().

Я ищу способ исправить это или еще один способ выяснить, почему это расширение не загружается.

Спасибо


person Andrew Hall    schedule 02.05.2012    source источник
comment
Есть ли у вас какие-либо ошибки в журналах ошибок PHP/Apache? Какую версию WampServer вы используете и на какой ОС?   -  person LeonardChallis    schedule 03.05.2012
comment
Я использую WampServer 2.2 на Windows 7 64bit.   -  person Andrew Hall    schedule 04.05.2012
comment
Также кажется, что у меня есть ошибка в apache_error.log: Запуск PHP: невозможно загрузить динамическую библиотеку 'c:/wamp/bin/php/php5.3.9/ext/xhprof.dll' -% 1 не является допустимой Win32 application.\r\n в неизвестном в строке 0   -  person Andrew Hall    schedule 04.05.2012


Ответы (2)


Вы используете 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-битную версию. Удачи!

person LeonardChallis    schedule 04.05.2012
comment
Имеет смысл - id проверил, все остальное совпало, но забыл о x86 против 64 - person Andrew Hall; 04.05.2012

Спасибо, Леонард Чаллис. У меня была аналогичная ошибка в течение нескольких часов. Мне нужно было использовать php_ibm_db2.dll. После добавления его в папку расширения и файл php.ini. Я начал получать сообщение об ошибке.

Не удалось загрузить динамическую библиотеку c:/wamp/bin/php/php5.3.13/ext/php_ibm_db2.dll — %1 не является допустимым приложением Win32.

Некоторые решения, которые мне попадались, советуют класть его в папку system32. Это не помогло. Я посетил несколько форумов и блогов. Все советы провалились. Пока не увидел вашу рекомендацию. Так просто, не могу понять, почему я не подумал об этом. Хотя сообщение об ошибке немного расплывчато.

Кстати, для тех, кто работает со средой PHP to DB2, файлы dll можно получить здесь: http://sourceforge.net/projects/db2mc/files/.

Убедитесь, что вы также установили распространяемый пакет Microsoft Visual C++ 2010 SP1 (x86) — vcredist_x86.exe.

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

Я надеюсь, что это поможет любому, у кого может возникнуть аналогичная проблема в будущем. Спасибо всем, кто внес свой вклад в этот форум. Это было большим подспорьем.

person Michael Dixon    schedule 23.04.2013