Quantcast
Channel: Библиотека знаний
Viewing all articles
Browse latest Browse all 1318

PHP отладчик XDebug - [Основный настройки]

$
0
0

PHP отладчик XDebug

Подключение и настройка

nano ./xdebug.ini

zend_extension=xdebug.so

[debug]
xdebug.auto_trace=0
xdebug.collect_includes=1
xdebug.collect_params=1
xdebug.collect_return=0
;xdebug.default_enable=1
xdebug.extended_info=1
xdebug.show_local_vars=1
xdebug.show_mem_delta=1
xdebug.max_nesting_level=100
xdebug.cli_color=1
xdebug.scream=0

; Limits
xdebug.var_display_max_depth = 5; -1 No limit
xdebug.var_display_max_children = 256; -1 No limit
xdebug.var_display_max_data = 1024; -1 No limit

; trace
xdebug.trace_format=0
xdebug.trace_output_dir= "/var/log/php5-fpm/php-fpm-xdebug-trace"
xdebug.trace_options=0
xdebug.trace_output_name=timestamp

; debugger settings
xdebug.remote_autostart=0; 1 - Не требует XDEBUG_SESSION = xdebug в параметрах или куках, 0 - требует
xdebug.remote_enable=1
xdebug.remote_connect_back = 1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1; - отладка на локальной машине
xdebug.remote_host=192.168.1.6; - отладка на удаленной машине
xdebug.remote_mode=req
;xdebug.remote_mode = JIT
xdebug.remote_port=9000
xdebug.remote_log="/var/log/php5-fpm/php-fpm-xdebug-remote"
xdebug.idekey=xdebug

; profiler settings
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_dir= "/var/log/php5-fpm/php-fpm-xdebug-profiler"
xdebug.profiler_output_name=profile.out

; Request
;xdebug.dump.GET=*
;xdebug.dump.REQUEST =*
;xdebug.dump.SERVER=HTTP_HOST, SERVER_NAME

Основные настройки

  • xdebug.remote_autostart
  • xdebug.remote_host
  • xdebug.var_display_max_depth = 5; -1 No limit
  • xdebug.var_display_max_children = 256; -1 No limit
  • xdebug.var_display_max_data = 1024; -1 No limit

Web XDebug

XDEBUG_SESSION_START=xdebug
XDEBUG_SESSION=xdebug

Console XDebug

$ exportPHP_IDE_CONFIG="serverName=www.host-name.ztc"&&exportXDEBUG_CONFIG="remote_host=192.168.1.6 idekey=xdebug"&& php7.0 ./yii

Где:

  • PHP_IDE_CONFIG - Наименование сервера из "Settings / Preferences | Languages & Frameworks | PHP | Servers"
    • Так-же желательно установить маппирование путей (локальных и на удаленном сервере)
  • XDEBUG_CONFIG
    • remote_host - IP Хоста, производящего отладку
    • idekey - Ключ, устанавливаемый в списке серверов "Settings / Preferences | Languages & Frameworks | PHP | Servers", "Ide key(session id)"

Хелпер для более одного отладчика

Если на сервере стоит более одного отладчика и в консоли по умолчанию, те в php.ini найденой по php -i, стоит другой отладчик в параметре zend_extension.

nano ~./.bashsrc

function phpx(){
export PHP_INI_SCAN_DIR=/etc/php5/cli-xdebug/conf.d && php -c /etc/php5/cli-xdebug/php.ini -q "$@";
}

и далее вызываем наш скрипт

phpx sample.php

Мульти соеденения

  • apt-get install php5-xdebug
  • cd /opt
  • mkdir pydbgpproxy
  • cd pydbgpproxy
  • wget https://github.com/Mirocow/pydbgpproxy/archive/master.zip ./ - Установить прокси (Python Remote Debugging Client)
  • unzip master.zip ./
  • echo "export PYTHONPATH=\${PYTHONPATH}:/opt/bin/pydbgpproxy/pythonlib" » ~/.bashrc
  • ln -s $(pwd)/pydbgpproxy /usr/local/bin/pydbgpproxy
  • запустить /usr/loca/bin/pydbgpproxy -i 0.0.0.0:9001 -d 9000
  • Установить уникальный ключ для хоста.

  • Зарегистрировать на сервере

nano ./xdebug.ini

; configuration for php xdebug module
; priority=20
zend_extension=xdebug.so

[debug]
xdebug.auto_trace=0
xdebug.collect_includes=1
xdebug.collect_params=1
xdebug.collect_return=0
;xdebug.default_enable=1
xdebug.extended_info=1
xdebug.show_local_vars=1
xdebug.show_mem_delta=1
xdebug.max_nesting_level=100

; trace
xdebug.trace_format=0
xdebug.trace_output_dir= "/var/log/php5-fpm/php-fpm-xdebug-trace"
xdebug.trace_options=0
xdebug.trace_output_name=timestamp

; debugger settings
xdebug.remote_autostart=0; 1 - Не требует XDEBUG_SESSION = xdebug в параметрах или куках, 0 - требует
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
;xdebug.remote_mode = JIT
xdebug.remote_port=9000
xdebug.remote_log="/var/log/php5-fpm/php-fpm-xdebug-remote"

; profiler settings
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_dir= "/var/log/php5-fpm/php-fpm-xdebug-profiler"
xdebug.profiler_output_name=profile.out

Скрипт загрузки

nano /etc/init.d/pydbgpproxy.sh

#! /bin/sh
### BEGIN INIT INFO
# Provides:          Python Remote Debugging Client
# Required-Start:    $remote_fs dbus udev
# Required-Stop:     $remote_fs dbus udev
# Should-Start:      $syslog
# Should-Stop:       $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Python Remote Debugging Client
# Description:       Python Remote Debugging Client.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Python Remote Debugging Client"
NAME="pydbgpproxy"
DAEMON=/usr/local/bin/pydbgpproxy
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/pydbgpproxy.sh
DAEMON_OPTS="-i 0.0.0.0:9001 -d 9000"
DAEMON_LOG=/var/log/$NAME.log


# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

. /lib/lsb/init-functions

test -f /etc/default/pydbgpproxy && . /etc/default/pydbgpproxy

#
#       Function that starts the daemon/service.
# --background
d_start() {
        start-stop-daemon --oknodo --make-pidfile --start --quiet --pidfile $PIDFILE \
                --exec $DAEMON -- $DAEMON_OPTS 1>$DAEMON_LOG 2>&1 &
        return "$?"
}

#
#       Function that stops the daemon/service.
#
d_stop() {
        start-stop-daemon --stop --quiet --pidfile $PIDFILE
        return "$?"
}


case "$1" in
  start)
        if [ -f $PIDFILE ]; then
                echo "$NAME is running."
                exit 0
        fi
        log_daemon_msg "Starting $DESC" "$NAME"
        d_start
        case "$?" in
                0) log_end_msg 0 ;;
                1) log_progress_msg "already started"
                   log_end_msg 0 ;;
                *) log_end_msg 1 ;;
        esac
        ;;
  stop)
        log_daemon_msg "Stopping $DESC" "$NAME"
        d_stop
        case "$?" in
                0) log_end_msg 0 ;;
                1) log_progress_msg "already stopped"
                   log_end_msg 0 ;;
                *) log_end_msg 1 ;;
        esac
        if [ -f $PIDFILE ]; then
                rm $PIDFILE
        fi
        ;;
  restart|force-reload)
        $0 stop
        $0 start
        ;;
  status)
        status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
        exit 1
        ;;
esac

exit 0
# chmod 775 /etc/init.d/pydbgpproxy.sh
# chkconfig pydbgpproxy.sh on

Запуск в коде

ini_set('xdebug.profiler_enable', 1);
xdebug_enable();
xdebug_disable();
<?php
    xdebug_start_code_coverage();

    function a($a) {
        echo $a * 2.5;
    }

    function b($count) {
        for ($i = 0; $i < $count; $i++) {
            a($i + 0.17);
        }
    }

    b(6);
    b(10);

    var_dump(xdebug_get_code_coverage());
?>

Подробнее


Viewing all articles
Browse latest Browse all 1318

Trending Articles


Love Quotes Tagalog


UPDATE SC IDOL: TWO BECOME ONE


Pokemon para colorear


Sapos para colorear


The business quotes | Inspirational and Motivational Quotes for you


Papa Jack Tagalog Love Quotes and Advice for you


“BAHAY KUBO HUGOT”


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.1 by Vimeo.com, Inc.


EASY COME, EASY GO


HOY PANGIT, MAGBAYAD KA!


Girasoles para colorear


Presence Quotes – Positive Quotes


Long Distance Relationship Tagalog Love Quotes


Top 10 Best “Single” Tagalog Love Quotes


“Mali man na ikaw ay ibigin ko, akoy iibig padin sayo”


RE: Mutton Pies (frankie241)


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE