В Nusphere PhpEd есть отладчик для php-скриптов, который позволяет отлаживать и профилировать веб-сервисы любой сложности и с любой структурой на удаленном сервере. Единственный требования для его нормальной работы — это открытый порт на компьютере, с которого происходит отладка, и подключение модуля отладчика, который идет в поставке с PhpEd, к php.
После выпуска Веборамы 2.0 мы наконец-то сделали фича-фриз и пришла пора серьезно заняться рефакторингом. Для этого было бы неплохо использовать дебаггер. Лично я очень завидую, тем кто пользуется отладчиком в работе на постоянной основе. У нас с самого начала его внедрить не получилось и как-то это дело забросили. Но сейчас, ввиду сложности взаимоотношений различных модулей проекта, мы стали терять очень много времени, используя «классические» методы отладки (var_dump, print).
Вот так опять вспомнился встроенный в PhpEd отладчик. Но так как наше производство находится в разных местах, на сервер разработки мы ходим удаленно. Поэтому нам предстояло поднять его по самому сложному сценарию, который и изложен ниже:
Далее идет текст нашего технолога (с моими правками, чтобы сделать его более или менее абстрактным), который писал статью в корпоративную Вики (В случае успеха, автор не получит инвайт на хабр, так как у него уже есть учетная запись andrushkaaaa :) ):
На примере PhpEd 5.6 и гипотетчиской dev.weborama.ru (все папки и проекты могут называться как угодно, во избежание паранойи я не пишу каждый раз, что «эту папку можно поместить куда угодно» или «здесь можно выбрать любое название»)
1. Для начала займемся сервером. Скопируйте из установки PhpEd/подпапка debugger нужную версию отладчика на сервер.
2. откройте файл php.ini и пропишите в нем следующее:
3. перезапустите веб-сервер, fast-cgi демон, бекенд или что там у вас.
4. Теперь клиент. По адресу C:\Documents and Settings\{имя компьютера}\Application ata\NuSphere\PhpED\ создать папку myWorkspace
5. Внутри myWorkspace создать папку projects, внутри нее – папку dev.weborama.ru, в которой будут храниться файлы проекта.
6. Скачать или положить туда весь проект.
7. Открыть PhpEd
8. В PhpEd выбрать New project.
9. Переключиться в режим Wizard, если это не произошло автоматически.
10. Выбрать пункт «Веб-сервер находится на удаленной машине».
11. Указать в качестве корня проекта C:\Documents and Settings\{имя компьютера}\Application Data\NuSphere\PhpED\myWorkspace\dev.weborama.ru
12. Нажать на кнопку Accounts
13. Настроить FTP учетную запись для dev.weborama.ru
14. Выбрать ее как Publishing account.
Это позволит вам синхронизировать ваш локальный код с тем, что на сервере.
15. На следующем шаге скачайте dbg-wizard.php по указанной ссылке и положите его в корень проекта на FTP сами. Избавите себя от головной боли. Потом укажите ссылку к нему.
Далее нажимайте «Next» пока не дойдете до финиша. Я с вами пройти не могу, так как проект гипотетический. Если будут проблемы, то пишите в комментарии — разберемся.
После этого всего вы можете считать ваш проект готовым к отладке.
16. Если вы за файерволом, то убедитесь что порт 7869 (по умолчанию) торчит наружу и принимает соединения. Также, если вы хотите большей безопасности и у вас статический IP, то приготовьте его, он понадобится нам в настройках для серверной части отладчика.
17. теперь открывайте в PhpEd любой php-файл проекта и нажимайте F9 или Run in debugger в панельке отладки. Если все сделано верно, то у вас начнется сессия отладки.
Спасибо за внимание.
P.S.: Если интересно, то в следующий раз я напишу как подружить проект PhpEd с Subversion и настроить дебаггер на несколько разработчиков.
После выпуска Веборамы 2.0 мы наконец-то сделали фича-фриз и пришла пора серьезно заняться рефакторингом. Для этого было бы неплохо использовать дебаггер. Лично я очень завидую, тем кто пользуется отладчиком в работе на постоянной основе. У нас с самого начала его внедрить не получилось и как-то это дело забросили. Но сейчас, ввиду сложности взаимоотношений различных модулей проекта, мы стали терять очень много времени, используя «классические» методы отладки (var_dump, print).
Вот так опять вспомнился встроенный в PhpEd отладчик. Но так как наше производство находится в разных местах, на сервер разработки мы ходим удаленно. Поэтому нам предстояло поднять его по самому сложному сценарию, который и изложен ниже:
Далее идет текст нашего технолога (с моими правками, чтобы сделать его более или менее абстрактным), который писал статью в корпоративную Вики (В случае успеха, автор не получит инвайт на хабр, так как у него уже есть учетная запись andrushkaaaa :) ):
На примере PhpEd 5.6 и гипотетчиской dev.weborama.ru (все папки и проекты могут называться как угодно, во избежание паранойи я не пишу каждый раз, что «эту папку можно поместить куда угодно» или «здесь можно выбрать любое название»)
1. Для начала займемся сервером. Скопируйте из установки PhpEd/подпапка debugger нужную версию отладчика на сервер.
2. откройте файл php.ini и пропишите в нем следующее:
zend_extension = /path/to/debbugger_extension/dbg-php-5.2.so [debugger] debugger.enabled=on debugger.profiler_enabled=on #если вы хотите использовать профайлер debugger.hosts_allow=ваш IP-адрес debugger.hosts_deny=ALL debugger.ports=7869 10000/16
3. перезапустите веб-сервер, fast-cgi демон, бекенд или что там у вас.
4. Теперь клиент. По адресу C:\Documents and Settings\{имя компьютера}\Application ata\NuSphere\PhpED\ создать папку myWorkspace
5. Внутри myWorkspace создать папку projects, внутри нее – папку dev.weborama.ru, в которой будут храниться файлы проекта.
6. Скачать или положить туда весь проект.
7. Открыть PhpEd
8. В PhpEd выбрать New project.
9. Переключиться в режим Wizard, если это не произошло автоматически.
10. Выбрать пункт «Веб-сервер находится на удаленной машине».
11. Указать в качестве корня проекта C:\Documents and Settings\{имя компьютера}\Application Data\NuSphere\PhpED\myWorkspace\dev.weborama.ru
12. Нажать на кнопку Accounts
13. Настроить FTP учетную запись для dev.weborama.ru
14. Выбрать ее как Publishing account.
Это позволит вам синхронизировать ваш локальный код с тем, что на сервере.
15. На следующем шаге скачайте dbg-wizard.php по указанной ссылке и положите его в корень проекта на FTP сами. Избавите себя от головной боли. Потом укажите ссылку к нему.
Далее нажимайте «Next» пока не дойдете до финиша. Я с вами пройти не могу, так как проект гипотетический. Если будут проблемы, то пишите в комментарии — разберемся.
После этого всего вы можете считать ваш проект готовым к отладке.
16. Если вы за файерволом, то убедитесь что порт 7869 (по умолчанию) торчит наружу и принимает соединения. Также, если вы хотите большей безопасности и у вас статический IP, то приготовьте его, он понадобится нам в настройках для серверной части отладчика.
17. теперь открывайте в PhpEd любой php-файл проекта и нажимайте F9 или Run in debugger в панельке отладки. Если все сделано верно, то у вас начнется сессия отладки.
Спасибо за внимание.
P.S.: Если интересно, то в следующий раз я напишу как подружить проект PhpEd с Subversion и настроить дебаггер на несколько разработчиков.