Установка Xdebug на удаленный сервер для профилирования

Я пытаюсь установить Xdebug на удаленном сервере в облаке AWS с целью профилирования. Я установил Xdebug, я проверил, используя phpinfo(), и сохранил некоторые настройки, чтобы включить опцию профилирования на сервере, она включена, я проверил.

Я сохраняю выходные журналы pro filer в каталоге на удаленном сервере. Теперь я хочу открыть эти файлы, используя Kcachedgrind. Итак, я установил Kcachesgrind.

Настройки, которые я использовал в файле PHP.ini, приведены ниже.

zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.profiler_output_dir = "/opt/lampp/htdocs/profiler/logs"
xdebug.profile_output_name = cachegrind.out.%t-%s
xdebug.remote_enable=On
xdebug.remote_host="ip-10-125-11-57"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.show_local_vars=On
xdebug.collect_return=On
xdebug.collect_params=4
xdebug.profiler_enable=On
xdebug.profiler_enable_trigger=1

В приведенных выше настройках вы можете увидеть файл с именем xdebug.remote_host, обычно это localhost, но я на удаленном сервере, поэтому я сохранил имя хоста моего сервера. Я получаю сообщение об ошибке ниже, когда я пытался открыть файл с помощью Kcachegrind.

Kcachegrind: Can't connect to X server

2 ответа

У вас в основном есть два вменяемых варианта:

  1. Загрузите файл с удаленного сервера на локальный компьютер и отладьте его там. Если вас раздражает необходимость каждый раз скачивать файл, каким-то образом автоматизируйте задачу.

  2. Используйте утилиту командной строки для оценки файла (документация xdebug упоминает ct_annotate), см. Здесь: http://xdebug.org/docs/profiler

Я настоятельно рекомендую вариант 1.

Имейте в виду, что Kcachegrind - это программа с графическим интерфейсом пользователя, что означает: она имеет окна, кнопки и тому подобное. Вашему удаленному серверу обычно не требуется никакого программного обеспечения с графическим интерфейсом, поэтому нет никакой поддержки для окон, кнопок и тому подобного (без X-сервера, без KDE и т. Д.). Хотя решение TeTeT теоретически возможно, пожалуйста, НЕ устанавливайте X на вашем удаленном сервере и подключайтесь через vnc. Это медленный процесс, он будет занимать много места на жестком диске и в памяти и является крутой кривой обучения для начинающих.

Если вы действительно хотите отладить это на сервере, вам нужно установить X и рабочий стол для него и подключиться через vnc.

Возможно, это также поможет скопировать файлы отладки и профиля в локальную систему и проверить их там.

Другие вопросы по тегам