Ich habe einige Beiträge darüber gelesen, aber keine half in meinem Fall oder einfach übersehen das fehlende Stück.Verwenden von xdebug durch Docker-Container in PhpStorm
Ich kann nicht xdebug auf PhpStorm mit einem Docker-Container arbeiten.
Docker-compose.yml
version: '2'
services:
web:
image: nginx:latest
volumes:
- .:/usr/share/nginx/html
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/logs/nginx
- ./nginx/site-enabled/default.conf:/etc/nginx/sites-enabled/default.conf
ports:
- "80:80"
depends_on:
- php
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: 1234
MYSQL_DATABASE: local_db
MYSQL_USER: root
MYSQL_PASSWORD: 1234
ports:
- "3306:3306"
php:
build: images/php
volumes:
- .:/usr/share/nginx/html
- ./config/docker/php/php.ini:/usr/local/etc/php/php.ini
- ./config/docker/php/ext-xdebug.ini:/usr/local/etc/php/conf.d/ext-xdebug.ini
- ./config/docker/php/php-fpm.conf:/usr/local/etc/php-fpm.conf
user: www-data
depends_on:
- db
config/Andockfensters/php/ext-xdebug.ini
zend_extension="/usr/lib/php7/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.overload_var_dump=1
xdebug.default_enable=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_connect_back=1
xdebug.remote_host=172.20.0.1 # ip of host inside docker container
xdebug.remote_log=/usr/share/nginx/html/xdebug.log
Fehlers von xdebug.log
Log opened at 2017-05-31 11:01:14
I: Checking remote connect back address.
I: Checking header 'HTTP_X_FORWARDED_FOR'.
I: Checking header 'REMOTE_ADDR'.
I: Remote address found, connecting to 172.20.0.1:9000.
W: Creating socket for '172.20.0.1:9000', poll success, but error: Operation now in progress (29).
E: Could not connect to client. :-(
Log closed at 2017-05-31 11:01:14
In PhpStorm Ich bin mit Remote-Debugger mit folgenden Einstellungen:
Server
Host - 127.0.0.1
Port - 80
Absoluter Pfad auf dem Server
/usr/share/nginx/html
IDE Sitzungsschlüssel
PHPSTORM
killen phpstorm, und überprüfen Sie auf Ihrem Host, wenn Port 9000 von einem anderen Prozess verwendet wird. Wenn dies der Fall ist, müssen Sie möglicherweise den xdebug-Port sowohl in den php-Einstellungen als auch in Ihrem phpstorm ändern. – YvesLeBorg
Es gibt keinen Prozess, der diesen Port verwendet, außer phpstorm beim Start – xhallix