Как заставить XDEBUG (V3) работать с VSCODE и Docker (или Podman) на хосте Windows?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как заставить XDEBUG (V3) работать с VSCODE и Docker (или Podman) на хосте Windows?

Сообщение Anonymous »

Когда я использую xdebug с VSCode (и расширение отладки PHP) локально на моем хосте Windows, он работает нормально.
Но когда я пытаюсь использовать XDebug в контейнере Docker/Podman, он не работает - он не останавливается на точках прорыва, даже если соединение является успешным.

Код: Выделить всё

# Use official PHP image with FPM and CLI
FROM php:8.2-fpm

# Install system dependencies and PHP extensions for Laravel
RUN apt-get update && apt-get install -y \
git \
unzip \
libpq-dev \
libonig-dev \
libxml2-dev \
libzip-dev \
&& docker-php-ext-install pdo pdo_mysql pdo_pgsql zip mbstring xml

# Install Xdebug
RUN pecl install xdebug && docker-php-ext-enable xdebug

# Configure Xdebug
RUN echo "zend_extension=xdebug.so" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.mode=debug" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.client_port=9003" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_port=9003" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.log=/tmp/xdebug.log" >> /usr/local/etc/php/php.ini  \
&& echo "xdebug.idekey=VSCODE" >> /usr/local/etc/php/php.ini

# Install Composer globally
COPY --from=composer:2.4 /usr/bin/composer /usr/bin/composer

# Set the working directory to /var/www
WORKDIR /var/www

# Copy the Laravel project to the container
COPY . .

# Install Laravel dependencies
RUN composer install --no-interaction --prefer-dist --optimize-autoloader

# Set permissions for storage and cache
RUN chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache

# Expose port 8000 for Laravel's Artisan serve
EXPOSE 8000

# Start the Laravel development server
CMD php artisan serve --host=0.0.0.0 --port=8000
< /code>
И вот как я строю и запускаю контейнер: < /p>
podman build . -t=xdebug

podman run -d -p 8000:8000 -p 9003:9003 xdebug
Вывод xdebug_info () показывает, что подключение является успешным, и нет ошибок. https://github.com/xdebug/vscode-php-de ... -919385770
Хотя я пробовал несколько вариантов, и это все еще не сработало (возможно, проблема связан с Pathmappings , но это все еще не может сработать. Поверить, что это может быть в этом случае, если это так, что, по-прежнему, по-прежнему не может быть, это может поверить. Если это имеет значение)
Обновление: я попытался редактировать Pathmappings , но все же он все еще не сработает. Мой проект локально на c:/xampp/htdocs/xdebug :

Код: Выделить всё

    "configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www": "C:/xampp/htdocs/xdebug"
}
},
< /code>
и наоборот: < /p>
    "configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"C:/xampp/htdocs/xdebug": "/var/www"
}
},
Но ни один из них не работал

Подробнее здесь: https://stackoverflow.com/questions/790 ... indows-hos
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»