Xdebug в VSCodium (vscode): отладка PHP приложения в контейнере docker из браузера - Настройка
Primary tabs
Файл docker-compose.yml
# Файл docker-compose должен начинаться с указания версии. version: '3.9' # Сети networks: internal: # Ниже список наших сервисов (контейнеров). NGINX, PHP, MySQL services: # Nginx service nginx: image: nginx:alpine container_name: ktu_nginx ports: - 19621:80 expose: - "80" environment: - VIRTUAL_HOST=fkn.ktu10.loc - VIRTUAL_PORT=80 volumes: - './config/nginx/:/etc/nginx/conf.d/' - '..:/var/www/project' depends_on: - app - mysql networks: - internal app: build: context: . dockerfile: Dockerfile container_name: ktu_old_php volumes: - '../:/var/www/project' - './config/mysql:/docker-entrypoint-initdb.d' - './config/php-fpm/docker-php-ext-xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini' ports: - "9000:9000" networks: - internal mysql: image: mysql:5.7 container_name: ktu_old_db_mysql command: --default-authentication-plugin=mysql_native_password --innodb_use_native_aio=0 # command: --mysql-native-password=ON ports: - "19622:3306" volumes: - './config/mysql:/docker-entrypoint-initdb.d' - '../input:/var/www/input' # Задаем пароль для root пользователя environment: MYSQL_ROOT_PASSWORD: 1234 MYSQL_USER: ktu_old_user MYSQL_PASSWORD: ktu_old_password MYSQL_MULTIPLE_DATABASES: ktu_old_mysql_db networks: - internal
Файл launch.json
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=... "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003, "log": true, "pathMappings": { "/var/www": "${workspaceRoot}", } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 0, "runtimeArgs": [ "-dxdebug.start_with_request=yes" ], "env": { "XDEBUG_MODE": "debug,develop", "XDEBUG_CONFIG": "client_port=${port}" } }, { "name": "Launch Built-in web server", "type": "php", "request": "launch", "runtimeArgs": [ "-dxdebug.mode=debug", "-dxdebug.start_with_request=yes", "-S", "localhost:0" ], "program": "", "cwd": "${workspaceRoot}", "port": 9000, "serverReadyAction": { "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started", "uriFormat": "http://localhost:%s", "action": "openExternally" } } ] }
Файл Dockerfile
FROM php:7.2-fpm-alpine3.6 RUN apk --no-cache update \ && apk add --no-cache autoconf g++ make \ \ && pecl install xdebug-2.6.1 \ \ && docker-php-ext-install pdo_mysql mbstring \ \ && rm -rf /tmp/pear # RUN apt-get install php-xdebug # Install dependencies for GD and install GD with support for jpeg, png webp and freetype # Info about installing GD in PHP https://www.php.net/manual/en/image.inst... RUN apk add --no-cache \ libjpeg-turbo-dev \ libpng-dev \ libwebp-dev \ freetype-dev # As of PHP 7.4 we don't need to add --with-png RUN docker-php-ext-configure gd --with-jpeg --with-png --with-webp --with-freetype RUN echo 'memory_limit = 256M' >> /usr/local/etc/php/conf.d/docker-fpm.ini WORKDIR /var/www/project # Запускаем контейнер CMD ["php-fpm"]
Файл docker-php-ext-xdebug.ini
zend_extension=xdebug xdebug.mode=debug xdebug.client_host=host.docker.internal xdebug.client_port=9003 xdebug.start_with_request=yes xdebug.idekey="netbeans-xdebug"
Если зайти по адресу http://localhost:19621/?XDEBUG_SESSION_S... то браузер и отладчик друг друга вообще не видят. Кука "XDEBUG_SESSION" устанавливается сразу при заходе на страницу.
- Log in to post comments
- 299 reads
vedro-compota
Mon, 07/29/2024 - 17:14
Permalink
версия xdebug
возможно тут стоит проверить что настройки указаны именно для твоей версии xdebug: https://fkn.ktu10.com/?q=node/12116
_____________
матфак вгу и остальная классика =)