Отладка PHP с помощью VSCode и DockerPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Отладка PHP с помощью VSCode и Docker

Сообщение Гость »

Я пытаюсь отладить PHP-приложение, работающее на Docker, с помощью VSCode, но безуспешно.
Раньше мне удавалось легко отлаживать свои PHP-приложения с помощью VSCode с WAMP-сервером. , но с тех пор, как я начал работать с Docker, я не могу заставить работать отладку. Поискал в Интернете несколько учебных пособий, проверил некоторые темы здесь, на StackOverflow (например: Docker и XDebug не читают точки останова VSCode), но мне все еще не удается заставить это работать.
Dockerfile:

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

FROM php:7.1.8-apache

COPY /cms /srv/app/cms
COPY .docker/cms/vhosts/vhost.conf /etc/apache2/sites-available/cms.conf
COPY .docker/cms/vhosts/vhost-ssl.conf /etc/apache2/sites-available/cms-ssl.conf
COPY .docker/cms/vhosts/certificate.conf /etc/ssl/certs/certificate.conf
COPY .docker/cms/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini

WORKDIR /srv/app/cms

RUN docker-php-ext-install mbstring pdo pdo_mysql
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
RUN chown -R www-data:www-data /srv/app/cms
RUN openssl req -x509 -new -out /etc/ssl/certs/ssl-cert-cms.crt -config /etc/ssl/certs/certificate.conf
RUN a2ensite cms.conf
RUN a2ensite cms-ssl.conf
RUN a2enmod rewrite
RUN a2enmod ssl
xdebug.ini

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

[xdebug]
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_connect_back=0
xdebug.remote_host='host.docker.internal'
xdebug.idekey='VSCODE'
xdebug.remote_autostart=1
docker-compose.yml

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

version: '3.7'
services:
cms:
build:
context: .
dockerfile: .docker/cms/Dockerfile
image: php:7.1.8-apache
ports:
- 18080:80
- 14430:443
volumes:
- ./cms:/srv/app/cms
links:
- mysql
- redis
environment:
DB_HOST: mysql
VIRTUAL_HOST: my.app.localhost
PHP_EXTENSION_XDEBUG: 1
VSCode: launch.json

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

"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"pathMappings": {
"/srv/app/cms": "${workspaceRoot}/my.app/cms",
},
"port": 9000
}, {
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
Когда я отлаживаю приложение, точка останова не срабатывает. Что я делаю не так?
ОБНОВЛЕНИЕ:
Основываясь на некоторых предложениях, я обновил файлы docker-compose.yml и launch.json. но ничего не изменилось.
docker-compose.yml

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

ports:
- 18080:80
- 14430:443
- 9000:9000 //added new xdebug default port
launch.json

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

"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"pathMappings": {
"/srv/app/cms": "${workspaceRoot}/my.app/cms",
},
"port": 9000,
"log": true
}
]
Консоль отладки VSCode:

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


Подробнее здесь: [url]https://stackoverflow.com/questions/52579102/debug-php-with-vscode-and-docker[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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