Форум
Пошаговая настройка Xdebug + OpenServer + PHPStorm
Пошаговая настройка Xdebug + OpenServer + PHPStorm
1. Подготовка
Xdebug уже встроен в OpenServer и качать нам его не понадобится
Если все же нужен другой релиз xdebug его можно скачать отсюда http://xdebug.org/download.php
и переместить в
e:\OpenServer\modules\php\PHP-5.4.17\ext\
не забыв прописать в php.ini путь к нему (zend_extension)
2. Редактируем php.ini (e:\OpenServer\userdata\config\PHP-5.4.17_php.ini)
Должны быть эти обязательные настройки
[Xdebug] zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll" xdebug.idekey = "PHPSTORM" xdebug.profiler_enable_trigger = 1 xdebug.profiler_output_dir="%sprogdir%/userdata/temp/xdebug/" xdebug.profiler_output_name = "cachegrind.out.%H%R" xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_port = 9000 xdebug.trace_output_dir = "%sprogdir%/userdata/temp/xdebug/"
Перезапускаем OpenServer
Смотрим чтобы была временная папка xdebug >
e:\OpenServer\userdata\temp\xdebug\
3. Добавляем в браузер закладки со страницы http://www.jetbrains.com/phpstorm/marklets/ после нажатия Generate (IDE key: PHPSTORM)
Код закладок имеет такой вид >
javascript:(/** @version 0.5.2 */function() )()
javascript:(/** @version 0.5.2 */function() )()
javascript:(/** @version 0.5.2 */function() )()
javascript:(/** @version 0.5.2 */function() )()
javascript:(/** @version 0.5.2 */function() )()
javascript:(/** @version 0.5.2 */function() )()
javascript:(/** @version 0.5.2 */function() )()
В гугл хроме после добавления закладок используем ctrl+shift+O для перемещения их в удобное место — отмечаем на шифте их и перетягиваем в начало списка закладок
Ctrl+Shift+B отображает / скрывает панель закладок сверху страницы
File > Settings > PHP >
PHP language level: > выбираем соответствующую версию пхп (5.4)
Interpreter > кликаем на .
PHP Home > корневой путь к пхп (E:\OpenServer\modules\php\PHP-5.4.17)
Debugger > Xdebug
Name > PHP (можно любое другое)
File > Settings > PHP > Servers >
Name: > домен создаваемого сайта
Host > домен создаваемого сайта (например: myblog.loc)
Port > 80
Желательно чтобы название сервера совпадало с хостом (так шторм по-умолчанию прописывает, если ранее не указали).
Указываем сами чтобы избежать вопроса о расположении файлов при запуске первой отладки.
5. Открываем нужную страницу в браузере которую будем отлаживать
Нажимаем с закладок Start debugger (у меня start Xdebug, кому как удобно название)
В phpstorm включаем Listen PHP Debug Connections (значок телефонной трубки)
В коде сайта определяем точку остановки > Ctrl + F8
ОБНОВЛЯЕМ страницу в браузере, тем самым увидели остановку сайта и перехват штормом всех данных, которые получили до точки прерывания
6. Профилирование в phpstorm
Нажимаем с нужной страницы сайта Start profiler, обновляем, переходим по страницам сайта для отслеживания их работы.
Этим мы записали лог выполнения скриптов страниц в файлы > e:\OpenServer\userdata\temp\xdebug\cachegrind.out.[путь_к_странице]
где каждой странице создается файл.
Если обновить или зайти по уже ранее открытой странице сайта, обновится содержимое лог-файла.
Когда прекратили сбор информации нажимаем с закладок Stop profiler
Нажимаем в шторме
Tools > Analyze Xdebug Profiler Snapshot > выбираем файл профилирования
(E:\OpenServer\userdata\temp\xdebug\cachegrind.out. )
Все файлы логов работы страниц будут храниться во временной папке . \userdata\temp\xdebug до очередного запуска OpenServer (то есть сотрутся если нажать перезапустить сервер или остановить, запустить)
Но после остановки сервера файлы профилирования все еще сохраняются!
7. Не забываем чтобы была указана необходимая версия PHP в OpServ-e > Настройки — Модули.
пожалуйста пускай юзают, ценная инфа все же (когда-то не мог сразу настроить, убил не один день. ), надо было сдублировать, переделав на современный лад так сказать )
File > Settings > PHP >
PHP language level: > выбираем соответствующую версию пхп (5.4)
Interpreter > кликаем на .
PHP Home > корневой путь к пхп (E:\OpenServer\modules\php\PHP-5.4.17)
Debugger > Xdebug
Name > PHP (можно любое другое)
Опенсервер последний (4.8.9)
ПХП 5.5.4
Видимо PHPStorm запущен не из закладок Open Server. Создайте закладку, думаю в этом проблема, поскольку автор не написал ничего про php.ini
Простите но я вас не понял.
ПХПШторм установлен отдельно.
Что значит запущен не из закладок Опенсервера?
Автор описал настройки ПХП.ини в п.2 туториала.
Так же ПХПШторм утверждает что модуль Хдебаг не подключен:
Loaded extensions: bcmath, calendar, Core, ctype, date, dom, ereg, filter, ftp, hash, iconv, json, libxml, mcrypt, mhash, mysqlnd, odbc, pcre, PDO, Phar, Reflection, session, SimpleXML, SPL, standard, tokenizer, wddx, xml, xmlreader, xmlwriter, zip, zlib
Настройки в файле php.ini это одно, я же речь вёл про совсем другое — про месторасположение этого файла. Поскольку автор ничего об этом не написал, то я думаю в своей инструкции он имел ввиду что запуск программы делается из закладки в Open Server.
Так и есть.
Добавил ПХПШторм в закладки и Хдебаг определился.
Спасибо!
Возможно ли настроить так что бы нормально запускалось с ярлыка?
Можете создать все стандартные параметры окружения PHP в переменных окружения Windows и тогда можно будет запускать с ярлыка (да и то только когда сервер запущен), однако в этом случае нужно будет прописать полные пути и Open Server потеряет портативность.
Я расскажу как я пользуюсь дебагером в phpstorm в связке с Open Server, по моему так намного проще:
Моя конфигурация: Open Server 4.9.0, PhpStorm 6.0.3, Windows 7.
1. Открываем проект в шторме
2. Открываем файл проекта который необходимо продебажить
3. Ставим брейкпоинт в участке кода который будем дебажить
4. Нажимаем на «Start Listen PHP Debug Connections» (ищем в подменю «Run» или на панели toolbar, иконка в виде трубки)
5. Теперь переходим в браузер Firefox и устанавливаем расширение easy Xdebug
6. Открываем в Firefox страницу которую будем дебажить
7. Включаем панель дополнений если она еще не включена
8. Находим на панели дополнений иконки плагина easy Xdebug
9. Запускаем xdebug сессию нажатием на жучка
10. Нажимаем F5 на нашей странице
11. Если все прошло удачно в PhpStorm должно всплыть следующее окно
12. Нажимаем Accept и все готово, можно дебажить
Теперь о php.ini. Для того чтобы это все заработало, в php.ini обязательно следим чтобы были следующие строки и в не закомментированном виде:
xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "localhost" xdebug.remote_port = 9000
Open Server не сохраняет изменения в php.ini
Не применяются изменения php.ini
Подскажете по одному вопросу изменил файл php.ini проверяю функцией phpinfo но значения не.
Всё перестало работать после изменения display_errors = On в php.ini
Решил покопаться в php.ini и прописать директиву вывода ошибок. display_errors = On После.
Open Server 5.2.2. Не загружается index.php
Доброго времени суток! Я установил Open Server 5.2.2, он успешно запустился. В папке domains я.
Не обрабатывается php-скрипт на html странице «Open server»
Ошибки, возникшие при обработке простого php-скрипта на html-странице код -> <?php echo.
Сообщение было отмечено Loompy как решение
Решение
Loompy, попробуйте открыть файл каким-нибудь блокнотом (мне по ряду параметров нравится Notepad++), и. сохранить его. А ещё лучше, открыть/отредактировать/сохранить его таким образом, которым предлагает делать это сам OpenServer: (см. приложение).
Если не сохраняется — проблема с правами на файл. В этом случае, программу которая запускает редактор — можно/нужно запустить с правами администратора (например, запустить блокнот с правами администратора, затем открыть в нём файл и сохранить) или запустить OpenServer с правами администратора, а он в свою очередь запустит «блокнот» с теми же правами.
Вероятность того, что откат происходит именно во время запуска сервера — около нуля, но если это так, «поймать» этот момент позволяет Notepad++, который следит за изменениями открытых файлов. Если проблема именно в «откате» — будем думать дальше, а пока. нужно убедится, что всё именно «так».