Denwer, Php, PhpStorm, Debugger

riff

Новичок
День добрый.
Опишу решение своей проблемы, может кому-нибудь пригодится.

На локальном компьютере для работы с php пользуюсь denwer'ом, ну просто потому, что это просто (хотя для дальнейшего повествования это имеет мало значения).

До недавнего времени использовал php версии 5.2 и ZendDebugger.dll для отладки, но пришлось обновится до версии 5.3. Всплыла проблема связанная с zdebugger-nts / php-ts / php-nts / php-vc6 / php-vc9 / apache-vc6 ну и всё в таком духе. Я не нашёл решение этой проблемы. Перепробовал все варианты, и apache-vc9 скачивал - всегда что-то с чем-то не работало и всё тут.

Во многих местах советуют установить ZendServer и работать из-под него. Я его скачал и поставил на виртуальную машину, посмотрел, там и php 5.3.8 и ZendDebugger и всё работает, Но не удобно (привык я наверно к denwer). Попытался скопировать zendDebugger из zendSever - не получается. Она тянет за собой какую-то другую dll, та в свою очередь требует ещё одну и т.д.

Установил xDebug, вроде не велика разница, так нет же, в консоль PhpStorm, в режиме отладки, перестала выводиться информация об error/warning/notice. В логах апача была, но туда переключаться каждый раз очень не удобно. Решения в инете опять же не нашёл. А мириться с этим нельзя.

Смотрел я на ZendServer, смотрел и уже чисто "а вдруг" сделал следующее:

1. Denwer у меня расположен в папке "d:\web\" (это не важно); при запуске создаётся виртуальный диск из этой папки "Z:" (это важно, следите за путями).

2,
* Скачал с сайта http://www.zend.com/en/products/server/downloads/ ZendServer для Php 5.3.
* На виртуальной машине (на виртуальной - что бы не загрязнять рабочую винду), создал виртуальный диск "Z:" командой subst и установил на него (для того чтобы потом не было проблем с путями) ZendServer; в опциях выбрал apache, mysql, ... , что бы ZendServer прописал самостоятельно все свои опции.

3. Далее, c диска "Z:" на виртуальной винде, перенёс на диск "Z:" на рабочей винде, папку ZendServer (из корня в корень !). Другие папки копировать не надо.

4. Из файла "zend.conf" (поиском найдёте) скопировал строки:
LoadModule zend_enabler_module "Z:\ZendServer\bin\ZendEnablerApache.dll"
ZendEnablerConfig "Z:\ZendServer\etc\ZendEnablerConf.xml"
AddHandler zend-enabler-script .php
AddType application/x-httpd-php .php

А в denwer, в файле "httpd.conf" закомментировал строку
# LoadModule php5_module "/usr/local/php5/php5apache2_2.dll"
и сюда же добавил скопированные выше строки.

5.
* Закрыл виртуальную машину,
* перезапустил denwer,
* проверил phpinfo
* посетил страницу http://www.jetbrains.com/phpstorm/marklets/ , где добавил в панель закладок пункты от zend debugger
* в phpstorm, в параметрах проекта переключил xdebug на zend debugger
* в phpstorm нажал "start listen php debug connection" И, Ура, всё заработало.

6. На что стоит обратить внимание - это то, что работает теперь не php из папки "denwer/usr/local", а php из папки zendserver, следовательно там же ищите и php.ini.
Ещё один момент: обновить версию php теперь будет сложнее, там файлы от php свалены вперемешку с кучей каких-то ещё файлов.

P.S. Если вы зашли на эту страницу и решили воспользоваться данным решением, то обратите также внимание на решение от macik.
 
  • Like
Реакции: xRay
Сверху