Запуск 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'.
Отправить комментарий