проблема пути с mod_rewrite, XDebug, PDT, XAMPP и Windows XP - PullRequest
2 голосов
/ 30 октября 2009

Мой mod_rewrite превращает account / create в index.php? Folder = account & action = create, но pdt игнорирует его, поэтому, когда я пытаюсь запустить сеанс отладки PHP Script, я должен ввести местоположение папки в поле файла и pdt не принимает.

Когда PDT автоматически генерирует URL для сеанса отладки веб-страницы PHP, я перехожу на http://localhost/myframe/index.php?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=12569067976875,, но myframe находится в папке frameworks, поэтому я получаю ошибку 404.

Когда я проверяю точку останова, снимаю флажок Автогенерация, добавляю рамки перед myframe в URL, устанавливаю Начать отладку с http://localhost/frameworks/myframe/accounts/create в Advanced и нажимаю Отладка, отладчик не останавливается на точке останова.

UPDATE

Работает отладка как веб-страница PHP без mod_rewrite. Отладка как веб-страница PHP с mod_rewrite не работает. Я использую следующую конфигурацию.

php.ini:
    zend_extension = "\xampp\php\ext\php_xdebug.dll"
    xdebug.idekey=ECLIPSE_XDEBUG
    xdebug.profiler_enable=1
    xdebug.remote_enable=1
    xdebug.remote_handler="dbgp"
    xdebug.remote_host="localhost"
    xdebug.remote_mode="req"
    xdebug.remote_port=9000

Start ->
    Control Panel ->
        Firewall ->
            Exceptions ->
                Add Port ->
                    Name:
                    XDebug

                    Port number:
                    9000

Window ->
    Preferences ->
        PHP ->
            Debug ->
                PHP Debugger:
                XDebug

                Server:
                localhost

                PHP Executables:
                C:\xampp\php\php-cgi.exe

Debug Configurations ->
    MyFrame Web Page ->
        Server ->
            PHP Server ->
                Configure ->
                    Server ->
                        Name:
                        localhost

                        Enter the URL that points to the document root of this server:
                        http://localhost/frameworks

                        Path Mapping ->
                            (serverpath) http://localhost/frameworks/myframe/index.php
                            to
                            (filesystem) C:\xampp\htdocs\frameworks\myframe\index.php

                            (serverpath) http://localhost/frameworks/myframe/index.php
                            to
                            (workspace) /myframe/index.php

            File:
            /myframe/index.php

            URL:
            http://localhost/ by the left
            frameworks/myframe/index.php by the right

        Advanced ->
            (checked) Open in Browser
            (checked) Debug All Pages


.htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)$ index.php?folder=$1&action=$2&params=$3 [L]
</IfModule>

1 Ответ

0 голосов
/ 21 ноября 2010

Я слышал об этой проблеме раньше в Eclipse PDT. На данный момент я уверен, что это ошибка в отладчике? Я не думаю, что XDebug также является виновником. Однако, если вы думаете, что это поможет, вы можете попробовать добавить это в ваш файл .htaccess:

php_flag xdebug.profiler_enable 1
php_value xdebug.profiler_output_dir /path/to/output_idr
php_value xdebug.profiler_output_name cachegrind.out.%t.%p

Таким образом, вам, по крайней мере, не нужно добавлять переменную XDebug GET к URL-адресу.

Вы пытались вручную ввести URL-адрес, который вы хотите создать mod_rewrite, и запустить отладчик оттуда? Это должен быть ваш следующий шаг, если вы еще этого не сделали. Удачи!

...