Запуск Zend Optimizer с включенным Zend Debugger

Пару месяцев назад прикрутил Zend Debugger к Eclipse, был несказанно доволен удобствами пошаговой отладки PHP скриптов. К своему стыду до того отлаживал простой распечаткой переменных через print_r($val).

Все работало замечательно до того момента, как пришлось запустить защищенный php скрипт - понадобилась установка Zend Optimizer. Почему-то ранее установленный и настроенный Zend Debuger наотрез отказывался запускаться с Zend Optimizer, мотивируя тем что должен запускаться последним.

Сколько я не переставлял строки подключения Zend Debugger в php.ini:

[Zend]
zend_extension_ts="C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_ts="C:/WebServer/php/ext/ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.0/16,192.168.1.5/16
zend_debugger.expose_remotely=always

ответ был одинаковый - "Zend Debugger должен загружаться после Zend Optimizer".

Немного поползав по интеренету нашел решение - надо просто немного поправить строку подключения Zend Debugger:

[Zend]
zend_extension_ts="C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_manager.debug_server_ts="C:/WebServer/php/ext/ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.0/16,192.168.1.5/16
zend_debugger.expose_remotely=always

Старое сообщение об ошибке в очередности библиотек больше не показывалось, зато появилось другое - "Zend Debugger Server for PHP 5.2.x cannot be founs (expected at 'C:\webserver\php\ext\ZendDebugger.dll'\php-5.2.x\ZendDebugger.dll) - try reinstalling the Zend Debugger Server". Немного поломав голову как так dll файл ищется в самом dll файле, понял что новый способ подключения дебугера, через менеджер расширений, требует наличия полной структуры каталогов, которая содержалась в ]]>архиве с библиотекой]]> и указания вместо полного пути до dll файла пути до каталога, куда был распакован архив. Скопировал всё содержимое архива, но и тут пришлось ещё "поработать напильником": в архиве файл нужной мне версии был в каталоге "5_2_x_comp", а менеджер расширений искал его в каталоге "php-5.2.x". Где тут ошибка - в дебугере, или в оптимизаторе (менеджер расширений шел вместе с ним) не понятно. Далее осталось поменять настройки в файле php.ini для правильного подключения всех нужных расширений:

[Zend]
zend_extension_ts="C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_optimizer.version=3.3.0
zend_extension_manager.debug_server_ts="C:\WebServer\php\ext\ZendDebugger-5.2.14RC9-cygwin_nt-i3861"
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.0/16,192.168.1.5/16
zend_debugger.expose_remotely=always

Заменил, перезапустил сервер, и всё заработало:

Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
    with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
    with Zend Debugger v5.2.14, Copyright (c) 1999-2008, by Zend Technologies

 

Комментарии

Thanks

под линукс такое решение помогло ....

спасибо, чувак!

Как оказалось, все работает и с такими настройками:

php.ini:

[Zend]
zend_extension_ts = "/usr/local/php5/zend/ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="/usr/local/php5/zend/"
zend_optimizer.enable_loader = 1
zend_optimizer.optimization_level = 15
zend_extension_manager.debug_server_ts="/usr/local/php5/zend/"
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always

Пути:

usr\local\php5\zend\php-5.2.x\ZendDebugger.dll
usr\local\php5\zend\php-5.2.x\ZendOptimizer.dll

Результат:

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
with Zend Debugger v5.2.15, Copyright (c) 1999-2008, by Zend Technologies

P/S/ автору все равно спасибо за то, что нашел необходимость вкладывать файл ZendDebugger.dll в папку 'php-5.2.x'.

Отправить комментарий

  • Доступны HTML теги: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Search Engines will index and follow ONLY links to allowed domains.

Подробнее о форматировании

Введите решение задачи